1 Carga de Datos

Cargamos los siguientes datasets:

Para mas información sobre cada uno, se puede visitar el enlace asociado.

1.1 Hurto 2017

data_hurto_raw <- read.csv("hurto.csv")
str(data_hurto_raw)
## 'data.frame':    185105 obs. of  20 variables:
##  $ Fecha             : Factor w/ 365 levels "01/01/2017 12:00:00 AM",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Departamento      : Factor w/ 32 levels "AMAZONAS","ANTIOQUIA",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ Municipio         : Factor w/ 901 levels "ABEJORRAL","ABREGO",..: 443 443 443 443 443 443 443 443 443 443 ...
##  $ Día               : Factor w/ 7 levels "Domingo","Jueves",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Hora              : Factor w/ 1390 levels "12/31/1899 01:00:00 AM",..: 1040 1040 229 346 346 346 116 801 801 623 ...
##  $ Barrio            : Factor w/ 13990 levels "       VDA.  ANDALUCIA",..: 5586 5586 5586 5990 7073 10005 2224 5586 9170 8286 ...
##  $ Zona              : Factor w/ 3 levels "OTRAS","RURAL",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ Clase.de.sitio    : Factor w/ 384 levels "-","AEROPUERTO",..: 382 382 382 382 382 382 382 382 382 84 ...
##  $ Arma.empleada     : Factor w/ 16 levels "-","ALUCINOGENOS",..: 3 3 3 14 4 14 14 14 4 14 ...
##  $ Móvil.Agresor     : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 6 12 2 2 2 14 2 ...
##  $ Móvil.Victima     : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 13 13 2 2 2 5 2 ...
##  $ Edad              : int  39 43 26 29 37 87 30 59 35 28 ...
##  $ Sexo              : Factor w/ 3 levels "-","FEMENINO",..: 3 3 2 2 3 3 3 3 3 3 ...
##  $ Estado.civil      : Factor w/ 7 levels "-","CASADO","DIVORCIADO",..: 6 6 5 6 2 2 5 5 6 6 ...
##  $ País.de.nacimiento: Factor w/ 84 levels "-","AFGANISTAN",..: 20 20 20 20 20 20 20 20 20 20 ...
##  $ Clase.de.empleado : Factor w/ 36 levels "-","AFRODESCENDIENTE",..: 17 17 17 17 26 30 26 26 26 17 ...
##  $ Profesión         : Factor w/ 168 levels "-","ADMINISTRACION  AGROINDUSTRIAL",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Escolaridad       : Factor w/ 8 levels "-","ANALFABETA",..: 5 4 5 5 5 5 5 5 5 5 ...
##  $ Código.DANE       : int  5001000 5001000 5001000 5001000 5001000 5001000 5001000 5001000 5001000 5001000 ...
##  $ Cantidad          : int  1 1 1 1 1 1 1 1 1 1 ...
head(data_hurto_raw)
##                    Fecha Departamento     Municipio     Día
## 1 01/01/2017 12:00:00 AM    ANTIOQUIA MEDELLÍN (CT) Domingo
## 2 01/01/2017 12:00:00 AM    ANTIOQUIA MEDELLÍN (CT) Domingo
## 3 01/01/2017 12:00:00 AM    ANTIOQUIA MEDELLÍN (CT) Domingo
## 4 01/01/2017 12:00:00 AM    ANTIOQUIA MEDELLÍN (CT) Domingo
## 5 01/01/2017 12:00:00 AM    ANTIOQUIA MEDELLÍN (CT) Domingo
## 6 01/01/2017 12:00:00 AM    ANTIOQUIA MEDELLÍN (CT) Domingo
##                     Hora                     Barrio   Zona Clase.de.sitio
## 1 12/31/1899 10:00:00 AM         LA CANDELARIA C-10 URBANA  VIAS PUBLICAS
## 2 12/31/1899 10:00:00 AM         LA CANDELARIA C-10 URBANA  VIAS PUBLICAS
## 3 12/31/1899 03:00:00 PM         LA CANDELARIA C-10 URBANA  VIAS PUBLICAS
## 4 12/31/1899 04:00:00 PM LA LOMA DE LOS BERNAL C-16 URBANA  VIAS PUBLICAS
## 5 12/31/1899 04:00:00 PM            MANRIQUE 1  C-4 URBANA  VIAS PUBLICAS
## 6 12/31/1899 04:00:00 PM          SURAMERICANA C-11 URBANA  VIAS PUBLICAS
##                 Arma.empleada        Móvil.Agresor Móvil.Victima Edad
## 1 ARMA BLANCA / CORTOPUNZANTE                A PIE         A PIE   39
## 2 ARMA BLANCA / CORTOPUNZANTE                A PIE         A PIE   43
## 3 ARMA BLANCA / CORTOPUNZANTE                A PIE         A PIE   26
## 4         SIN EMPLEO DE ARMAS       CONDUCTOR TAXI PASAJERO TAXI   29
## 5               ARMA DE FUEGO PASAJERO MOTOCICLETA PASAJERO TAXI   37
## 6         SIN EMPLEO DE ARMAS                A PIE         A PIE   87
##        Sexo Estado.civil País.de.nacimiento   Clase.de.empleado Profesión
## 1 MASCULINO  UNION LIBRE           COLOMBIA EMPLEADO PARTICULAR         -
## 2 MASCULINO  UNION LIBRE           COLOMBIA EMPLEADO PARTICULAR         -
## 3  FEMENINO      SOLTERO           COLOMBIA EMPLEADO PARTICULAR         -
## 4  FEMENINO  UNION LIBRE           COLOMBIA EMPLEADO PARTICULAR         -
## 5 MASCULINO       CASADO           COLOMBIA       INDEPENDIENTE         -
## 6 MASCULINO       CASADO           COLOMBIA          PENSIONADO         -
##   Escolaridad Código.DANE Cantidad
## 1  SECUNDARIA     5001000        1
## 2    PRIMARIA     5001000        1
## 3  SECUNDARIA     5001000        1
## 4  SECUNDARIA     5001000        1
## 5  SECUNDARIA     5001000        1
## 6  SECUNDARIA     5001000        1

1.2 Pobloacion por Municipio

data_municipios_raw <- read.csv("municipios.csv")
str(data_municipios_raw)
## 'data.frame':    1123 obs. of  112 variables:
##  $ DP     : int  5 5 5 5 5 5 5 5 5 5 ...
##  $ DPNOM  : Factor w/ 34 levels "","Amazonas",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ DPMP   : int  5001 5002 5004 5021 5030 5031 5034 5036 5038 5040 ...
##  $ MPIO   : Factor w/ 1041 levels "Abejorral","Abrego",..: 519 1 3 20 30 31 36 37 38 40 ...
##  $ X1985  : Factor w/ 1015 levels "0","1,024","1,116",..: 12 471 516 649 401 272 606 767 122 108 ...
##  $ X1986  : Factor w/ 1023 levels "0","1,026","1,055",..: 13 474 521 658 417 283 616 776 139 119 ...
##  $ X1987  : Factor w/ 1018 levels "0","1,059","1,093",..: 13 467 530 661 419 288 622 780 143 117 ...
##  $ X1988  : Factor w/ 1028 levels "0","1,094","1,130",..: 15 469 529 670 428 297 628 789 152 124 ...
##  $ X1989  : Factor w/ 1028 levels "0","1,011","1,011,952",..: 16 470 538 678 440 302 627 791 155 126 ...
##  $ X1990  : Factor w/ 1026 levels "0","1,030,294",..: 17 465 536 671 443 303 621 790 153 125 ...
##  $ X1991  : Factor w/ 1035 levels "0","1,039","1,046,745",..: 19 465 537 675 450 309 634 807 158 130 ...
##  $ X1992  : Factor w/ 1033 levels "0","1,032","1,060,949",..: 17 452 532 669 454 313 632 812 158 131 ...
##  $ X1993  : Factor w/ 1048 levels "0","1,070","1,072,677",..: 20 457 543 679 469 327 644 825 165 143 ...
##  $ X1994  : Factor w/ 1049 levels "0","1,081,892",..: 20 455 543 681 476 333 648 834 168 150 ...
##  $ X1995  : Factor w/ 1051 levels "0","1,009","1,088,918",..: 22 445 542 682 481 331 648 843 162 149 ...
##  $ X1996  : Factor w/ 1062 levels "0","1,061","1,094,276",..: 23 447 553 692 491 345 663 853 171 170 ...
##  $ X1997  : Factor w/ 1080 levels "0","1,098,589",..: 24 443 555 689 496 357 668 867 175 184 ...
##  $ X1998  : Factor w/ 1081 levels "0","1,102,552",..: 27 439 555 686 499 361 668 878 184 195 ...
##  $ X1999  : Factor w/ 1086 levels "0","1,034","1,106,762",..: 377 437 560 686 505 372 673 881 174 201 ...
##  $ X2000  : Factor w/ 1100 levels "0","1,070","1,093",..: 385 440 421 693 515 379 685 918 175 221 ...
##  $ X2001  : Factor w/ 1095 levels "0","1,084","1,106",..: 380 437 413 683 513 418 729 920 165 220 ...
##  $ X2002  : Factor w/ 1110 levels "0","1,075","1,123,862",..: 385 436 417 612 522 426 740 942 164 226 ...
##  $ X2003  : Factor w/ 1098 levels "0","1,065","1,130,964",..: 384 431 415 604 523 427 735 942 165 229 ...
##  $ X2004  : Factor w/ 1106 levels "0","1,055","1,138,545",..: 383 428 408 605 525 427 740 950 156 234 ...
##  $ X2005  : Factor w/ 1099 levels "0","1,048","1,146,498",..: 384 425 407 604 529 430 741 959 151 240 ...
##  $ X2006  : Factor w/ 1106 levels "0","1,042","1,154,642",..: 386 425 402 603 531 434 745 963 147 246 ...
##  $ X2007  : Factor w/ 1109 levels "0","1,004","1,035",..: 396 431 408 606 540 442 758 978 150 256 ...
##  $ X2008  : Factor w/ 1102 levels "1,017","1,029",..: 390 369 398 592 531 435 751 985 131 251 ...
##  $ X2009  : Factor w/ 1106 levels "1,022","1,029",..: 395 369 400 593 538 440 757 994 122 258 ...
##  $ X2010  : Factor w/ 1105 levels "1,004","1,015",..: 390 364 393 589 538 442 760 1005 105 266 ...
##  $ X2011  : Factor w/ 1111 levels "1,007","1,029",..: 390 360 389 585 541 447 763 1018 106 273 ...
##  $ X2012  : Factor w/ 1108 levels "1,000","1,041",..: 381 355 376 574 537 443 760 1018 100 269 ...
##  $ X2013  : Factor w/ 1107 levels "1,078","1,089",..: 381 344 371 569 540 445 762 1028 93 269 ...
##  $ X2014  : Factor w/ 1101 levels "1,090","1,105",..: 384 341 369 566 538 444 759 1027 90 272 ...
##  $ X2015  : Factor w/ 1105 levels "1,001,755","1,102",..: 380 339 360 568 541 443 761 1035 85 279 ...
##  $ X2016  : Factor w/ 1111 levels "1,013,389","1,094",..: 379 331 355 567 543 445 765 1055 80 282 ...
##  $ X2017  : Factor w/ 1100 levels "1,024,882","1,066",..: 378 327 349 561 542 443 762 1057 79 289 ...
##  $ X2018  : Factor w/ 1105 levels "1,036,134","1,038",..: 381 326 29 566 599 449 770 1075 81 295 ...
##  $ X2019  : Factor w/ 1107 levels "1,021","1,047,005",..: 379 315 27 562 600 450 773 1080 69 295 ...
##  $ X2020  : Factor w/ 1100 levels "1,006","1,057,445",..: 376 310 27 560 597 448 770 1079 63 296 ...
##  $ X1985.1: Factor w/ 973 levels "0","1,008","1,011",..: 80 827 875 282 897 834 239 125 329 482 ...
##  $ X1986.1: Factor w/ 981 levels "0","1,013","1,017",..: 78 826 878 285 911 844 230 127 336 481 ...
##  $ X1987.1: Factor w/ 967 levels "0","1,000","1,001",..: 86 787 903 274 923 836 216 122 326 461 ...
##  $ X1988.1: Factor w/ 977 levels "0","1,003","1,004",..: 89 787 916 285 939 883 222 125 333 459 ...
##  $ X1989.1: Factor w/ 969 levels "0","1,008,752",..: 90 785 908 288 938 883 230 129 336 461 ...
##  $ X1990.1: Factor w/ 991 levels "0","1,014","1,018",..: 98 795 930 287 962 910 230 139 335 467 ...
##  $ X1991.1: Factor w/ 987 levels "0","1,001","1,002",..: 106 790 930 290 965 912 227 146 338 471 ...
##  $ X1992.1: Factor w/ 984 levels "0","1,015","1,020",..: 106 791 932 287 155 919 223 276 339 479 ...
##  $ X1993.1: Factor w/ 992 levels "0","1,008","1,010",..: 112 790 934 281 157 947 220 287 331 482 ...
##  $ X1994.1: Factor w/ 1001 levels "0","1,020","1,026",..: 119 792 946 286 165 957 227 306 335 506 ...
##  $ X1995.1: Factor w/ 1011 levels "0","1,000","1,002",..: 129 795 962 291 174 976 234 335 336 524 ...
##  $ X1996.1: Factor w/ 1018 levels "0","1,010","1,014",..: 139 807 973 300 188 990 243 369 340 547 ...
##  $ X1997.1: Factor w/ 1037 levels "0","1,004","1,005",..: 149 823 992 305 202 1012 260 394 346 573 ...
##  $ X1998.1: Factor w/ 1028 levels "0","1,017","1,020",..: 147 816 1005 294 202 158 258 475 334 623 ...
##  $ X1999.1: Factor w/ 1048 levels "0","1,007","1,015",..: 156 832 1022 293 207 161 264 503 330 651 ...
##  $ X2000.1: Factor w/ 1051 levels "0","1,000","1,013",..: 305 841 1007 160 218 173 276 532 336 675 ...
##  $ X2001.1: Factor w/ 1059 levels "0","1,003","1,005",..: 313 837 1016 156 231 174 288 550 339 683 ...
##  $ X2002.1: Factor w/ 1051 levels "0","1,000","1,003",..: 320 836 1004 150 239 176 289 551 335 686 ...
##  $ X2003.1: Factor w/ 1056 levels "0","1,001","1,005",..: 324 839 1008 149 235 170 284 565 329 695 ...
##  $ X2004.1: Factor w/ 1059 levels "0","1,002","1,009",..: 333 846 1009 148 241 175 294 623 328 747 ...
##  $ X2005.1: Factor w/ 1054 levels "0","1,001","1,015",..: 329 842 998 144 243 179 296 631 315 749 ...
##  $ X2006.1: Factor w/ 1054 levels "0","1,000","1,018",..: 329 839 993 138 245 181 302 646 310 756 ...
##  $ X2007.1: Factor w/ 1071 levels "0","1,000","1,011",..: 341 850 1007 141 253 188 310 671 317 779 ...
##  $ X2008.1: Factor w/ 1057 levels "0","1,001","1,013",..: 345 844 996 138 260 194 431 666 314 769 ...
##  $ X2009.1: Factor w/ 1058 levels "0","1,009","1,011",..: 351 847 993 137 267 200 433 672 156 781 ...
##  $ X2010.1: Factor w/ 1058 levels "0","1,006","1,017",..: 358 855 996 133 271 201 440 686 149 834 ...
##  $ X2011.1: Factor w/ 1054 levels "0","1,002","1,004",..: 354 851 990 123 268 193 438 682 142 835 ...
##  $ X2012.1: Factor w/ 1059 levels "0","1,000","1,017",..: 360 854 956 127 273 198 439 718 138 845 ...
##  $ X2013.1: Factor w/ 1060 levels "0","1,003","1,013",..: 363 863 958 119 275 196 442 734 130 859 ...
##  $ X2014.1: Factor w/ 1071 levels "0","1,006","1,014",..: 378 875 960 121 286 209 457 752 129 874 ...
##  $ X2015.1: Factor w/ 1061 levels "0","1,018","1,025",..: 365 858 943 114 275 196 449 744 116 861 ...
##  $ X2016.1: Factor w/ 1064 levels "0","1,001","1,010",..: 370 859 943 116 283 202 453 752 115 869 ...
##  $ X2017.1: Factor w/ 1058 levels "0","1,016","1,018",..: 379 860 940 112 289 209 454 759 108 904 ...
##  $ X2018.1: Factor w/ 1065 levels "0","1,010","1,018",..: 385 873 951 113 293 210 466 772 106 920 ...
##  $ X2019.1: Factor w/ 1068 levels "0","1,003","1,005,981",..: 392 877 913 113 293 211 473 775 104 925 ...
##  $ X2020.1: Factor w/ 1073 levels "0","1,010","1,013",..: 389 874 903 114 292 206 471 774 100 931 ...
##  $ X1985.2: Factor w/ 1005 levels "0","1,019","1,024",..: 724 292 327 366 156 50 405 546 59 950 ...
##  $ X1986.2: Factor w/ 1014 levels "0","1,029","1,055",..: 815 303 337 376 173 54 418 556 64 961 ...
##  $ X1987.2: Factor w/ 1018 levels "0","1,002","1,053",..: 810 299 337 372 183 51 419 559 70 963 ...
##  $ X1988.2: Factor w/ 1011 levels "0","1,054","1,099",..: 883 303 341 380 191 53 416 560 77 960 ...
##  $ X1989.2: Factor w/ 1013 levels "0","1,011","1,082",..: 887 302 339 374 196 51 423 567 78 963 ...
##  $ X1990.2: Factor w/ 1013 levels "0","1,048","1,165",..: 894 297 341 373 196 51 420 569 80 967 ...
##  $ X1991.2: Factor w/ 1028 levels "0","1,076","1,086",..: 960 291 342 376 197 1024 425 580 86 984 ...
##  $ X1992.2: Factor w/ 1019 levels "0","1,003","1,032",..: 950 282 333 362 185 1012 420 570 81 972 ...
##  $ X1993.2: Factor w/ 1042 levels "0","1,010","1,070",..: 971 283 346 378 199 1032 436 582 89 997 ...
##  $ X1994.2: Factor w/ 1028 levels "0","1,009","1,020",..: 903 277 354 382 202 1017 442 584 97 989 ...
##  $ X1995.2: Factor w/ 1053 levels "0","1,009","1,019",..: 926 270 355 377 208 1038 452 571 96 1014 ...
##  $ X1996.2: Factor w/ 1046 levels "0","1,030","1,046",..: 926 263 352 371 211 1032 461 561 95 1013 ...
##  $ X1997.2: Factor w/ 1057 levels "0","1,042","1,061",..: 858 258 344 356 212 1039 458 554 82 1030 ...
##  $ X1998.2: Factor w/ 1066 levels "0","1,054","1,078",..: 856 259 343 351 211 1050 448 551 88 1036 ...
##  $ X1999.2: Factor w/ 1069 levels "0","1,034","1,054",..: 794 252 346 354 210 1048 452 550 84 1040 ...
##  $ X2000.2: Factor w/ 1074 levels "0","1,062","1,070",..: 789 246 332 338 204 1048 442 539 88 1041 ...
##  $ X2001.2: Factor w/ 1087 levels "0","1,042","1,051",..: 716 247 334 341 205 1062 450 548 94 1063 ...
##  $ X2002.2: Factor w/ 1082 levels "0","1,000","1,021",..: 705 243 59 334 204 1054 444 533 88 1057 ...
##  $ X2003.2: Factor w/ 1083 levels "0","1,005","1,006",..: 710 233 56 64 194 1052 443 528 90 1059 ...
##  $ X2004.2: Factor w/ 1087 levels "0","1,028","1,045",..: 699 221 54 61 190 1058 441 528 87 1066 ...
##  $ X2005.2: Factor w/ 1082 levels "0","1,002","1,010",..: 591 215 54 63 189 1060 436 524 85 1067 ...
##  $ X2006.2: Factor w/ 1092 levels "0","1,006","1,013",..: 596 214 51 63 184 1072 442 531 81 1078 ...
##  $ X2007.2: Factor w/ 1088 levels "0","1,002","1,004",..: 589 204 45 60 177 1064 433 528 73 1070 ...
##   [list output truncated]
head(data_municipios_raw)
##   DP     DPNOM DPMP       MPIO     X1985     X1986     X1987     X1988
## 1  5 Antioquia 5001   Medellín 1,535,955 1,565,394 1,595,095 1,625,321
## 2  5 Antioquia 5002  Abejorral    26,049    25,813    25,575    25,331
## 3  5 Antioquia 5004   Abriaquí     3,067     3,098     3,127     3,156
## 4  5 Antioquia 5021 Alejandría     4,909     4,903     4,895     4,886
## 5  5 Antioquia 5030      Amagá    21,984    22,313    22,644    22,974
## 6  5 Antioquia 5031     Amalfi    17,515    17,719    17,926    18,134
##       X1989     X1990     X1991     X1992     X1993     X1994     X1995
## 1 1,656,333 1,688,394 1,721,767 1,756,711 1,793,491 1,832,197 1,872,241
## 2    25,071    24,789    24,479    24,129    23,735    23,297    22,875
## 3     3,179     3,201     3,214     3,222     3,220     3,209     3,187
## 4     4,872     4,851     4,823     4,784     4,732     4,666     4,589
## 5    23,296    23,606    23,901    24,173    24,419    24,633    24,823
## 6    18,339    18,535    18,727    18,907    19,070    19,216    19,344
##       X1996     X1997     X1998     X1999     X2000     X2001     X2002
## 1 1,912,860 1,953,293 1,992,781 2,030,560 2,065,871 2,098,618 2,129,874
## 2    22,479    22,109    21,768    21,462    21,195    20,966    20,759
## 3     3,158     3,121     3,076     3,027     2,971     2,912     2,856
## 4     4,503     4,412     4,319     4,226     4,137     4,053     3,978
## 5    25,002    25,175    25,356    25,553    25,775    26,027    26,294
## 6    19,463    19,574    19,681    19,788    19,899    20,019    20,139
##       X2003     X2004     X2005     X2006     X2007     X2008     X2009
## 1 2,159,609 2,187,831 2,214,494 2,239,003 2,265,244 2,291,378 2,317,336
## 2    20,570    20,401    20,249    20,113    20,022    19,930    19,853
## 3     2,799     2,744     2,690     2,636     2,570     2,504     2,458
## 4     3,912     3,858     3,816     3,789     3,747     3,724     3,688
## 5    26,571    26,858    27,155    27,455    27,709    27,950    28,192
## 6    20,262    20,391    20,525    20,665    20,826    20,985    21,138
##       X2010     X2011     X2012     X2013     X2014     X2015     X2016
## 1 2,343,049 2,368,282 2,393,011 2,417,325 2,441,123 2,464,322 2,486,723
## 2    19,750    19,672    19,570    19,478    19,382    19,290    19,195
## 3     2,397     2,336     2,290     2,231     2,175     2,128     2,075
## 4     3,652     3,618     3,575     3,550     3,502     3,466     3,435
## 5    28,433    28,664    28,897    29,117    29,339    29,555    29,770
## 6    21,295    21,449    21,615    21,768    21,932    22,088    22,253
##       X2017     X2018     X2019     X2020   X1985.1   X1986.1   X1987.1
## 1 2,508,452 2,529,403 2,549,537 2,569,007 1,479,540 1,503,563 1,528,065
## 2    19,096    18,991    18,882    18,779     7,161     7,075     6,992
## 3     2,019     1,971     1,918     1,870       783       793       803
## 4     3,393     3,361     3,307     3,278     2,000     2,015     2,030
## 5    29,980    30,181    30,376    30,561     8,780     8,955     9,135
## 6    22,414    22,567    22,714    22,860     7,416     7,636     7,859
##     X1988.1   X1989.1   X1990.1   X1991.1   X1992.1   X1993.1   X1994.1
## 1 1,553,523 1,580,416 1,609,222 1,640,420 1,674,486 1,711,901 1,752,866
## 2     6,915     6,841     6,771     6,706     6,643     6,583     6,525
## 3       814       824       836       846       857       867       877
## 4     2,045     2,059     2,070     2,080     2,087     2,089     2,086
## 5     9,323     9,518     9,721     9,935    10,159    10,394    10,639
## 6     8,083     8,307     8,526     8,744     8,957     9,160     9,354
##     X1995.1   X1996.1   X1997.1   X1998.1   X1999.1   X2000.1   X2001.1
## 1 1,796,485 1,841,583 1,886,988 1,931,527 1,974,026 2,013,312 2,049,139
## 2     6,474     6,430     6,392     6,357     6,327     6,300     6,279
## 3       885       893       897       900       900       896       889
## 4     2,079     2,068     2,054     2,037     2,017     1,995     1,972
## 5    10,896    11,168    11,451    11,748    12,057    12,380    12,716
## 6     9,537     9,712     9,877    10,032    10,176    10,310    10,437
##     X2002.1   X2003.1   X2004.1   X2005.1   X2006.1   X2007.1   X2008.1
## 1 2,083,308 2,115,793 2,146,598 2,175,681 2,201,335 2,228,669 2,255,845
## 2     6,265     6,259     6,260     6,271     6,291     6,317     6,351
## 3       883       875       866       858       849       840       831
## 4     1,950     1,930     1,912     1,896     1,884     1,874     1,864
## 5    13,053    13,391    13,730    14,070    14,411    14,719    15,011
## 6    10,561    10,684    10,809    10,936    11,068    11,209    11,347
##     X2009.1   X2010.1   X2011.1   X2012.1   X2013.1   X2014.1   X2015.1
## 1 2,282,794 2,309,446 2,335,568 2,361,134 2,386,233 2,410,765 2,434,647
## 2     6,391     6,439     6,493     6,540     6,587     6,636     6,681
## 3       821       811       800       788       776       764       751
## 4     1,854     1,845     1,837     1,830     1,824     1,818     1,812
## 5    15,294    15,568    15,827    16,076    16,312    16,540    16,757
## 6    11,479    11,611    11,739    11,869    11,991    12,116    12,236
##     X2016.1   X2017.1   X2018.1   X2019.1   X2020.1 X1985.2 X1986.2
## 1 2,457,680 2,479,990 2,501,470 2,522,081 2,541,978  56,415  61,831
## 2     6,724     6,765     6,802     6,835     6,865  18,888  18,738
## 3       738       724       710       695       680   2,284   2,305
## 4     1,808     1,804     1,801     1,799     1,797   2,909   2,888
## 5    16,973    17,174    17,370    17,551    17,730  13,204  13,358
## 6    12,359    12,477    12,589    12,696    12,798  10,099  10,083
##   X1987.2 X1988.2 X1989.2 X1990.2 X1991.2 X1992.2 X1993.2 X1994.2 X1995.2
## 1  67,030  71,798  75,917  79,172  81,347  82,225  81,590  79,331  75,756
## 2  18,583  18,416  18,230  18,018  17,773  17,486  17,152  16,772  16,401
## 3   2,324   2,342   2,355   2,365   2,368   2,365   2,353   2,332   2,302
## 4   2,865   2,841   2,813   2,781   2,743   2,697   2,643   2,580   2,510
## 5  13,509  13,651  13,778  13,885  13,966  14,014  14,025  13,994  13,927
## 6  10,067  10,051  10,032  10,009   9,983   9,950   9,910   9,862   9,807
##   X1996.2 X1997.2 X1998.2 X1999.2 X2000.2 X2001.2 X2002.2 X2003.2 X2004.2
## 1  71,277  66,305  61,254  56,534  52,559  49,479  46,566  43,816  41,233
## 2  16,049  15,717  15,411  15,135  14,895  14,687  14,494  14,311  14,141
## 3   2,265   2,224   2,176   2,127   2,075   2,023   1,973   1,924   1,878
## 4   2,435   2,358   2,282   2,209   2,142   2,081   2,028   1,982   1,946
## 5  13,834  13,724  13,608  13,496  13,395  13,311  13,241  13,180  13,128
## 6   9,751   9,697   9,649   9,612   9,589   9,582   9,578   9,578   9,582
##   X2005.2 X2006.2 X2007.2 X2008.2 X2009.2 X2010.2 X2011.2 X2012.2 X2013.2
## 1  38,813  37,668  36,575  35,533  34,542  33,603  32,714  31,877  31,092
## 2  13,978  13,822  13,705  13,579  13,462  13,311  13,179  13,030  12,891
## 3   1,832   1,787   1,730   1,673   1,637   1,586   1,536   1,502   1,455
## 4   1,920   1,905   1,873   1,860   1,834   1,807   1,781   1,745   1,726
## 5  13,085  13,044  12,990  12,939  12,898  12,865  12,837  12,821  12,805
## 6   9,589   9,597   9,617   9,638   9,659   9,684   9,710   9,746   9,777
##   X2014.2 X2015.2 X2016.2 X2017.2 X2018.2 X2019.2 X2020.2
## 1  30,358  29,675  29,043  28,462  27,933  27,456  27,029
## 2  12,746  12,609  12,471  12,331  12,189  12,047  11,914
## 3   1,411   1,377   1,337   1,295   1,261   1,223   1,190
## 4   1,684   1,654   1,627   1,589   1,560   1,508   1,481
## 5  12,799  12,798  12,797  12,806  12,811  12,825  12,831
## 6   9,816   9,852   9,894   9,937   9,978  10,018  10,062

1.3 Estadisticas Educación por ETC

data_educacion_raw <- read.csv("educacion.csv")
str(data_educacion_raw)
## 'data.frame':    661 obs. of  37 variables:
##  $ AÑO                        : int  2012 2013 2011 2014 2017 2015 2016 2014 2011 2013 ...
##  $ CÓDIGO_ETC                 : int  3828 3828 3828 3828 3828 3828 3828 3758 3758 3758 ...
##  $ ETC                        : Factor w/ 95 levels "Amazonas (ETC)",..: 1 1 1 1 1 1 1 2 2 2 ...
##  $ POBLACIÓN_5_16             : int  22194 22123 22223 22167 22269 22212 22243 586947 599438 590211 ...
##  $ TASA_MATRICULACIÓN_5_16    : num  8.19e+14 8.18e+01 8.23e+01 8.21e+01 8.36e+01 ...
##  $ COBERTURA_NETA             : num  81.9 81.8 82.3 82.1 82.1 ...
##  $ COBERTURA_NETA_TRANSICIÓN  : num  60.2 48.4 63.7 43.9 49 ...
##  $ COBERTURA_NETA_PRIMARIA    : num  85.6 84 87.2 84.9 80.6 ...
##  $ COBERTURA_NETA_SECUNDARIA  : num  53.3 58.2 50.6 57.7 60.7 ...
##  $ COBERTURA_NETA_MEDIA       : num  22.3 22.1 21.9 23.1 30.1 ...
##  $ COBERTURA_BRUTA            : num  94.8 95.4 94.5 95.7 96.6 ...
##  $ COBERTURA_BRUTA_TRANSICIÓN : num  60.2 96.9 94.5 89.5 92.6 ...
##  $ COBERTURA_BRUTA_PRIMARIA   : num  85.6 111.8 117.8 114 108 ...
##  $ COBERTURA_BRUTA_SECUNDARIA : num  53.3 91.2 82.5 89.1 94.3 ...
##  $ COBERTURA_BRUTA_MEDIA      : num  22.3 59.6 58 63.3 72.2 ...
##  $ TAMAÑO_PROMEDIO_DE_GRUPO   : num  19.3 27.6 14.9 20.3 21 ...
##  $ SEDES_CONECTADAS_A_INTERNET: num  20.9 12.8 36.4 16.5 16.5 ...
##  $ DESERCIÓN                  : num  4.7 3.29 5.46 3.04 4.88 4.76 5.06 2.68 4.16 3.84 ...
##  $ DESERCIÓN_TRANSICIÓN       : num  5.16 3.16 5.56 2.97 6.38 4.54 5.23 2.4 3.89 3.36 ...
##  $ DESERCIÓN_PRIMARIA         : num  2.3 1.82 3.67 1.95 3.06 2.53 2.75 2.26 3.93 3.27 ...
##  $ DESERCIÓN_SECUNDARIA       : num  7.97 5.26 8.21 4.67 6.98 8 8.49 3.55 4.71 5.03 ...
##  $ DESERCIÓN_MEDIA            : num  8.06 5.57 7.9 4.35 6.23 6.69 5.96 2.23 3.87 3.28 ...
##  $ APROBACIÓN                 : num  93.7 95.8 91.2 96.9 87.5 ...
##  $ APROBACIÓN_TRANSICIÓN      : num  94.8 96.8 94.3 97 92.7 ...
##  $ APROBACIÓN_PRIMARIA        : num  95.8 97 92.8 98 90 ...
##  $ APROBACIÓN_SECUNDARIA      : num  90.7 94.2 88.6 95.3 82 ...
##  $ APROBACIÓN_MEDIA           : num  90 92.3 85.2 95.7 86.6 ...
##  $ REPROBACIÓN                : num  1.56 0.93 3.38 0.03 7.67 6.01 5.83 1.02 3.67 5.01 ...
##  $ REPROBACIÓN_TRANSICIÓN     : num  0 0 0.17 0 0.91 0.27 0.32 0.06 0.13 0.17 ...
##  $ REPROBACIÓN_PRIMARIA       : num  1.92 1.13 3.5 0.03 6.91 6.92 5.97 0.84 3.2 4.74 ...
##  $ REPROBACIÓN_SECUNDARIA     : num  1.35 0.56 3.16 0.05 11.01 ...
##  $ REPROBACIÓN_MEDIA          : num  1.98 2.12 6.95 0 7.19 4.79 5.79 1.44 5.69 6.06 ...
##  $ REPITENCIA                 : num  3.9 4.32 1.65 6.3 5.96 5.15 6.61 1.87 2.02 1.7 ...
##  $ REPITENCIA_TRANSICIÓN      : num  0.67 2.46 0.65 2.77 3.3 1.36 1.66 0.19 0.15 0.19 ...
##  $ REPITENCIA_PRIMARIA        : num  3.32 4.41 2.02 6.83 7.06 5.14 7.5 1.77 1.94 1.59 ...
##  $ REPITENCIA_SECUNDARIA      : num  6.17 5.16 1.39 7.25 6.05 6.39 7.17 2.69 2.89 2.44 ...
##  $ REPITENCIA_MEDIA           : num  3.39 2.58 1.34 3.17 2.42 4.15 4.14 1.09 1.24 1.19 ...
head(data_educacion_raw)
##    AÑO CÓDIGO_ETC            ETC POBLACIÓN_5_16 TASA_MATRICULACIÓN_5_16
## 1 2012       3828 Amazonas (ETC)          22194            8.187348e+14
## 2 2013       3828 Amazonas (ETC)          22123            8.184000e+01
## 3 2011       3828 Amazonas (ETC)          22223            8.234000e+01
## 4 2014       3828 Amazonas (ETC)          22167            8.213000e+01
## 5 2017       3828 Amazonas (ETC)          22269            8.360000e+01
## 6 2015       3828 Amazonas (ETC)          22212            8.149000e+01
##   COBERTURA_NETA COBERTURA_NETA_TRANSICIÓN COBERTURA_NETA_PRIMARIA
## 1          81.87                     60.22                   85.62
## 2          81.83                     48.38                   83.96
## 3          82.32                     63.68                   87.23
## 4          82.11                     43.91                   84.93
## 5          82.10                     48.95                   80.56
## 6          81.46                     40.65                   82.75
##   COBERTURA_NETA_SECUNDARIA COBERTURA_NETA_MEDIA COBERTURA_BRUTA
## 1                     53.33                22.31           94.76
## 2                     58.22                22.09           95.41
## 3                     50.65                21.91           94.53
## 4                     57.69                23.09           95.65
## 5                     60.67                30.05           96.56
## 6                     59.41                26.52           95.76
##   COBERTURA_BRUTA_TRANSICIÓN COBERTURA_BRUTA_PRIMARIA
## 1                      60.22                    85.62
## 2                      96.86                   111.83
## 3                      94.49                   117.82
## 4                      89.50                   114.05
## 5                      92.62                   108.00
## 6                      79.35                   111.01
##   COBERTURA_BRUTA_SECUNDARIA COBERTURA_BRUTA_MEDIA
## 1                      53.33                 22.31
## 2                      91.23                 59.61
## 3                      82.46                 58.01
## 4                      89.12                 63.26
## 5                      94.30                 72.21
## 6                      94.27                 67.01
##   TAMAÑO_PROMEDIO_DE_GRUPO SEDES_CONECTADAS_A_INTERNET DESERCIÓN
## 1                   19.340                       20.91      4.70
## 2                   27.600                       12.84      3.29
## 3                   14.950                       36.36      5.46
## 4                   20.290                       16.51      3.04
## 5                   20.971                       16.50      4.88
## 6                   20.130                       16.36      4.76
##   DESERCIÓN_TRANSICIÓN DESERCIÓN_PRIMARIA DESERCIÓN_SECUNDARIA
## 1                 5.16               2.30                 7.97
## 2                 3.16               1.82                 5.26
## 3                 5.56               3.67                 8.21
## 4                 2.97               1.95                 4.67
## 5                 6.38               3.06                 6.98
## 6                 4.54               2.53                 8.00
##   DESERCIÓN_MEDIA APROBACIÓN APROBACIÓN_TRANSICIÓN APROBACIÓN_PRIMARIA
## 1            8.06      93.74                 94.84               95.78
## 2            5.57      95.78                 96.84               97.05
## 3            7.90      91.16                 94.27               92.83
## 4            4.35      96.93                 97.03               98.02
## 5            6.23      87.45                 92.71               90.04
## 6            6.69      89.23                 95.19               90.55
##   APROBACIÓN_SECUNDARIA APROBACIÓN_MEDIA REPROBACIÓN
## 1                 90.68            89.96        1.56
## 2                 94.17            92.31        0.93
## 3                 88.63            85.15        3.38
## 4                 95.28            95.65        0.03
## 5                 82.00            86.58        7.67
## 6                 85.73            88.52        6.01
##   REPROBACIÓN_TRANSICIÓN REPROBACIÓN_PRIMARIA REPROBACIÓN_SECUNDARIA
## 1                   0.00                 1.92                   1.35
## 2                   0.00                 1.13                   0.56
## 3                   0.17                 3.50                   3.16
## 4                   0.00                 0.03                   0.05
## 5                   0.91                 6.91                  11.01
## 6                   0.27                 6.92                   6.27
##   REPROBACIÓN_MEDIA REPITENCIA REPITENCIA_TRANSICIÓN REPITENCIA_PRIMARIA
## 1              1.98       3.90                  0.67                3.32
## 2              2.12       4.32                  2.46                4.41
## 3              6.95       1.65                  0.65                2.02
## 4              0.00       6.30                  2.77                6.83
## 5              7.19       5.96                  3.30                7.06
## 6              4.79       5.15                  1.36                5.14
##   REPITENCIA_SECUNDARIA REPITENCIA_MEDIA
## 1                  6.17             3.39
## 2                  5.16             2.58
## 3                  1.39             1.34
## 4                  7.25             3.17
## 5                  6.05             2.42
## 6                  6.39             4.15

1.4 Incautacón Armas de Fuego

data_incauta_raw <- read.csv("Incautafuego_2017.csv")
str(data_incauta_raw)
## 'data.frame':    20508 obs. of  10 variables:
##  $ FECHA         : Factor w/ 365 levels "01/01/2017","01/02/2017",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ DEPARTAMENTO  : Factor w/ 32 levels "AMAZONAS","ANTIOQUIA",..: 1 2 2 2 2 5 5 5 5 5 ...
##  $ MUNICIPIO     : Factor w/ 978 levels "ABEJORRAL","ABREGO",..: 447 38 310 766 827 511 511 511 511 511 ...
##  $ DÍA           : Factor w/ 7 levels "Domingo","Jueves",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ CLASE.DE.ARMA : Factor w/ 11 levels "AMETRALLADORA",..: 10 10 10 9 3 2 5 7 9 10 ...
##  $ PERMISO       : Factor w/ 2 levels "CON PERMISO",..: 1 2 2 2 1 2 2 2 2 2 ...
##  $ ZONA          : Factor w/ 2 levels "RURAL","URBANA": 1 2 1 1 1 1 1 1 1 1 ...
##  $ CLASE.DE.SITIO: Factor w/ 128 levels "AEROPUERTO","ALCALDIA",..: 127 127 127 50 50 128 128 128 128 128 ...
##  $ CÓDIGO.DANE   : int  91001000 5040000 5282000 5674000 5761000 13458000 13458000 13458000 13458000 13458000 ...
##  $ CANTIDAD      : int  1 1 1 1 1 1 13 1 3 2 ...
head(data_incauta_raw)
##        FECHA DEPARTAMENTO    MUNICIPIO     DÍA CLASE.DE.ARMA     PERMISO
## 1 01/01/2017     AMAZONAS LETICIA (CT) Domingo      REVOLVER CON PERMISO
## 2 01/01/2017    ANTIOQUIA        ANORÍ Domingo      REVOLVER SIN PERMISO
## 3 01/01/2017    ANTIOQUIA     FREDONIA Domingo      REVOLVER SIN PERMISO
## 4 01/01/2017    ANTIOQUIA  SAN VICENTE Domingo       PISTOLA SIN PERMISO
## 5 01/01/2017    ANTIOQUIA     SOPETRÁN Domingo      ESCOPETA CON PERMISO
## 6 01/01/2017      BOLÍVAR  MONTECRISTO Domingo      CARABINA SIN PERMISO
##     ZONA     CLASE.DE.SITIO CÓDIGO.DANE CANTIDAD
## 1  RURAL      VIAS PUBLICAS    91001000        1
## 2 URBANA      VIAS PUBLICAS     5040000        1
## 3  RURAL      VIAS PUBLICAS     5282000        1
## 4  RURAL FINCAS Y SIMILARES     5674000        1
## 5  RURAL FINCAS Y SIMILARES     5761000        1
## 6  RURAL     ZONA SELVÁTICA    13458000        1

2 Limpieza

Limpiaremos los dataset.

2.1 Hurto 2017

Se eliminan las columnas:

  • Fecha: No se pretende realizar analisis de hurtos reportados en el tiempo
  • Hora: No se pretende realizar analisis de hurtos reportados en el tiempo
  • Barrio: Demasiados factores para analizar, no sería posible responder una de las preguntas observando esta variable
  • País.de.nacimiento: No sería posible responder una de las preguntas observando esta variable, casi el 100% de los casos reportados son de Colombianos
  • Profesión: Demasiados factores para analizar, no sería posible responder una de las preguntas observando esta variable
  • Código.DANE: No tiene significado
  • Cantidad: No tiene significado
removable_columns <- c("Fecha", "Hora", "Barrio", "País.de.nacimiento", "Profesión", "Código.DANE", "Cantidad")

data_hurto_tidy <- data_hurto_raw[, -which(colnames(data_hurto_raw) %in% removable_columns)]

str(data_hurto_tidy)
## 'data.frame':    185105 obs. of  13 variables:
##  $ Departamento     : Factor w/ 32 levels "AMAZONAS","ANTIOQUIA",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ Municipio        : Factor w/ 901 levels "ABEJORRAL","ABREGO",..: 443 443 443 443 443 443 443 443 443 443 ...
##  $ Día              : Factor w/ 7 levels "Domingo","Jueves",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Zona             : Factor w/ 3 levels "OTRAS","RURAL",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ Clase.de.sitio   : Factor w/ 384 levels "-","AEROPUERTO",..: 382 382 382 382 382 382 382 382 382 84 ...
##  $ Arma.empleada    : Factor w/ 16 levels "-","ALUCINOGENOS",..: 3 3 3 14 4 14 14 14 4 14 ...
##  $ Móvil.Agresor    : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 6 12 2 2 2 14 2 ...
##  $ Móvil.Victima    : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 13 13 2 2 2 5 2 ...
##  $ Edad             : int  39 43 26 29 37 87 30 59 35 28 ...
##  $ Sexo             : Factor w/ 3 levels "-","FEMENINO",..: 3 3 2 2 3 3 3 3 3 3 ...
##  $ Estado.civil     : Factor w/ 7 levels "-","CASADO","DIVORCIADO",..: 6 6 5 6 2 2 5 5 6 6 ...
##  $ Clase.de.empleado: Factor w/ 36 levels "-","AFRODESCENDIENTE",..: 17 17 17 17 26 30 26 26 26 17 ...
##  $ Escolaridad      : Factor w/ 8 levels "-","ANALFABETA",..: 5 4 5 5 5 5 5 5 5 5 ...

Normalizamos los nombres de las columnas, removiendo tildes y dejando todos los caracteres en minuscula.

colnames(data_hurto_tidy) <- c("departamento", "municipio", "dia", "zona", "clase_de_sitio", "arma_empleada", "movil_agresor", "movil_victima", "edad", "sexo", "estado_civil", "clase_de_empleado", "escolaridad")

str(data_hurto_tidy)
## 'data.frame':    185105 obs. of  13 variables:
##  $ departamento     : Factor w/ 32 levels "AMAZONAS","ANTIOQUIA",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ municipio        : Factor w/ 901 levels "ABEJORRAL","ABREGO",..: 443 443 443 443 443 443 443 443 443 443 ...
##  $ dia              : Factor w/ 7 levels "Domingo","Jueves",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ zona             : Factor w/ 3 levels "OTRAS","RURAL",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ clase_de_sitio   : Factor w/ 384 levels "-","AEROPUERTO",..: 382 382 382 382 382 382 382 382 382 84 ...
##  $ arma_empleada    : Factor w/ 16 levels "-","ALUCINOGENOS",..: 3 3 3 14 4 14 14 14 4 14 ...
##  $ movil_agresor    : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 6 12 2 2 2 14 2 ...
##  $ movil_victima    : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 13 13 2 2 2 5 2 ...
##  $ edad             : int  39 43 26 29 37 87 30 59 35 28 ...
##  $ sexo             : Factor w/ 3 levels "-","FEMENINO",..: 3 3 2 2 3 3 3 3 3 3 ...
##  $ estado_civil     : Factor w/ 7 levels "-","CASADO","DIVORCIADO",..: 6 6 5 6 2 2 5 5 6 6 ...
##  $ clase_de_empleado: Factor w/ 36 levels "-","AFRODESCENDIENTE",..: 17 17 17 17 26 30 26 26 26 17 ...
##  $ escolaridad      : Factor w/ 8 levels "-","ANALFABETA",..: 5 4 5 5 5 5 5 5 5 5 ...

Se elimina (CT) de los datos en la columna Municipio, que significa que el municipio es la capital de su departamento, estos caracteres dificultan hacer el join con otros datasets.

remove_capital <- function(city_factor) {
  city <- as.character(city_factor)
  no_capital <- gsub(" \\(CT\\)", "", city)

  return(no_capital)
}

data_hurto_tidy$municipio <- as.factor(sapply(data_hurto_tidy$municipio, remove_capital))
str(data_hurto_tidy)
## 'data.frame':    185105 obs. of  13 variables:
##  $ departamento     : Factor w/ 32 levels "AMAZONAS","ANTIOQUIA",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ municipio        : Factor w/ 899 levels "ABEJORRAL","ABREGO",..: 442 442 442 442 442 442 442 442 442 442 ...
##  $ dia              : Factor w/ 7 levels "Domingo","Jueves",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ zona             : Factor w/ 3 levels "OTRAS","RURAL",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ clase_de_sitio   : Factor w/ 384 levels "-","AEROPUERTO",..: 382 382 382 382 382 382 382 382 382 84 ...
##  $ arma_empleada    : Factor w/ 16 levels "-","ALUCINOGENOS",..: 3 3 3 14 4 14 14 14 4 14 ...
##  $ movil_agresor    : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 6 12 2 2 2 14 2 ...
##  $ movil_victima    : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 13 13 2 2 2 5 2 ...
##  $ edad             : int  39 43 26 29 37 87 30 59 35 28 ...
##  $ sexo             : Factor w/ 3 levels "-","FEMENINO",..: 3 3 2 2 3 3 3 3 3 3 ...
##  $ estado_civil     : Factor w/ 7 levels "-","CASADO","DIVORCIADO",..: 6 6 5 6 2 2 5 5 6 6 ...
##  $ clase_de_empleado: Factor w/ 36 levels "-","AFRODESCENDIENTE",..: 17 17 17 17 26 30 26 26 26 17 ...
##  $ escolaridad      : Factor w/ 8 levels "-","ANALFABETA",..: 5 4 5 5 5 5 5 5 5 5 ...

Se cambian todos los - por NA y se eliminan las observaciones con por lo menos un NA.

which(names(summary(data_hurto_tidy$clase_de_sitio)) == "-")
## integer(0)
data_hurto <- data_hurto_tidy
data_hurto[data_hurto_tidy == "-"] <- NA
data_hurto <- data_hurto[complete.cases(data_hurto), ]

str(data_hurto)
## 'data.frame':    182418 obs. of  13 variables:
##  $ departamento     : Factor w/ 32 levels "AMAZONAS","ANTIOQUIA",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ municipio        : Factor w/ 899 levels "ABEJORRAL","ABREGO",..: 442 442 442 442 442 442 442 442 442 442 ...
##  $ dia              : Factor w/ 7 levels "Domingo","Jueves",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ zona             : Factor w/ 3 levels "OTRAS","RURAL",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ clase_de_sitio   : Factor w/ 384 levels "-","AEROPUERTO",..: 382 382 382 382 382 382 382 382 382 84 ...
##  $ arma_empleada    : Factor w/ 16 levels "-","ALUCINOGENOS",..: 3 3 3 14 4 14 14 14 4 14 ...
##  $ movil_agresor    : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 6 12 2 2 2 14 2 ...
##  $ movil_victima    : Factor w/ 15 levels "-","A PIE","BICICLETA",..: 2 2 2 13 13 2 2 2 5 2 ...
##  $ edad             : int  39 43 26 29 37 87 30 59 35 28 ...
##  $ sexo             : Factor w/ 3 levels "-","FEMENINO",..: 3 3 2 2 3 3 3 3 3 3 ...
##  $ estado_civil     : Factor w/ 7 levels "-","CASADO","DIVORCIADO",..: 6 6 5 6 2 2 5 5 6 6 ...
##  $ clase_de_empleado: Factor w/ 36 levels "-","AFRODESCENDIENTE",..: 17 17 17 17 26 30 26 26 26 17 ...
##  $ escolaridad      : Factor w/ 8 levels "-","ANALFABETA",..: 5 4 5 5 5 5 5 5 5 5 ...

Se cambia el orden de los factores de escolaridad y dia.

data_hurto$escolaridad <- factor(data_hurto$escolaridad, levels = c("NO REPORTADO", "ANALFABETA", "PRIMARIA", "SECUNDARIA", "TECNOLOGO", "TECNICO", "SUPERIOR"))

data_hurto$dia <- factor(data_hurto$dia, levels = c("Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"))
head(data_hurto)
##   departamento municipio     dia   zona clase_de_sitio
## 1    ANTIOQUIA  MEDELLÍN Domingo URBANA  VIAS PUBLICAS
## 2    ANTIOQUIA  MEDELLÍN Domingo URBANA  VIAS PUBLICAS
## 3    ANTIOQUIA  MEDELLÍN Domingo URBANA  VIAS PUBLICAS
## 4    ANTIOQUIA  MEDELLÍN Domingo URBANA  VIAS PUBLICAS
## 5    ANTIOQUIA  MEDELLÍN Domingo URBANA  VIAS PUBLICAS
## 6    ANTIOQUIA  MEDELLÍN Domingo URBANA  VIAS PUBLICAS
##                 arma_empleada        movil_agresor movil_victima edad
## 1 ARMA BLANCA / CORTOPUNZANTE                A PIE         A PIE   39
## 2 ARMA BLANCA / CORTOPUNZANTE                A PIE         A PIE   43
## 3 ARMA BLANCA / CORTOPUNZANTE                A PIE         A PIE   26
## 4         SIN EMPLEO DE ARMAS       CONDUCTOR TAXI PASAJERO TAXI   29
## 5               ARMA DE FUEGO PASAJERO MOTOCICLETA PASAJERO TAXI   37
## 6         SIN EMPLEO DE ARMAS                A PIE         A PIE   87
##        sexo estado_civil   clase_de_empleado escolaridad
## 1 MASCULINO  UNION LIBRE EMPLEADO PARTICULAR  SECUNDARIA
## 2 MASCULINO  UNION LIBRE EMPLEADO PARTICULAR    PRIMARIA
## 3  FEMENINO      SOLTERO EMPLEADO PARTICULAR  SECUNDARIA
## 4  FEMENINO  UNION LIBRE EMPLEADO PARTICULAR  SECUNDARIA
## 5 MASCULINO       CASADO       INDEPENDIENTE  SECUNDARIA
## 6 MASCULINO       CASADO          PENSIONADO  SECUNDARIA

2.2 Poblacion por municipio

Dejamos:

  • MPIO que es el nombre del municipio
  • X2017 que es la poblacion por municipio en 2017
target_columns <- c("MPIO", "X2017")
data_municipios_tidy <- data_municipios_raw[, which(colnames(data_municipios_raw) %in% target_columns)]

str(data_municipios_tidy)
## 'data.frame':    1123 obs. of  2 variables:
##  $ MPIO : Factor w/ 1041 levels "Abejorral","Abrego",..: 519 1 3 20 30 31 36 37 38 40 ...
##  $ X2017: Factor w/ 1100 levels "1,024,882","1,066",..: 378 327 349 561 542 443 762 1057 79 289 ...

Normalizamos el nombre de cada columna, dejandolos en minuscula y sin tildes.

colnames(data_municipios_tidy) <- c("municipio", "poblacion_2017")
str(data_municipios_tidy)
## 'data.frame':    1123 obs. of  2 variables:
##  $ municipio     : Factor w/ 1041 levels "Abejorral","Abrego",..: 519 1 3 20 30 31 36 37 38 40 ...
##  $ poblacion_2017: Factor w/ 1100 levels "1,024,882","1,066",..: 378 327 349 561 542 443 762 1057 79 289 ...

Convertimos la columna poblacion_2017 de factor a numerica.

factor_to_int <- function(a_factor) {
  a_char <- as.character(a_factor)
  no_commas <- gsub(",", "", a_char)
  num <- as.integer(no_commas)

  return(num)
}

data_municipios_tidy$poblacion_2017 <- sapply(data_municipios_tidy$poblacion_2017, factor_to_int)
data_municipios_tidy$municipio <- sapply(data_municipios_tidy$municipio, toupper)

str(data_municipios_tidy)
## 'data.frame':    1123 obs. of  2 variables:
##  $ municipio     : chr  "MEDELLÍN" "ABEJORRAL" "ABRIAQUÍ" "ALEJANDRÍA" ...
##  $ poblacion_2017: int  2508452 19096 2019 3393 29980 22414 46621 9216 11139 17521 ...

Eliminamos la fila que tiene el total nacional, no interesa para el analisis.

data_municipios_tidy <- data_municipios_tidy[data_municipios_tidy$municipio != "TOTAL NACIONAL", ]

str(data_municipios_tidy)
## 'data.frame':    1122 obs. of  2 variables:
##  $ municipio     : chr  "MEDELLÍN" "ABEJORRAL" "ABRIAQUÍ" "ALEJANDRÍA" ...
##  $ poblacion_2017: int  2508452 19096 2019 3393 29980 22414 46621 9216 11139 17521 ...

Se elimina la coma de BOGOTA, D.C, pues dificulta hacer el join con otro dataset.

bogota_row <- data_municipios_tidy[data_municipios_tidy$municipio == "BOGOTÁ, D.C.", ]
bogota_row$municipio <- c("BOGOTÁ D.C.")

data_municipios_tidy[data_municipios_tidy$municipio == "BOGOTÁ, D.C.", ] <- bogota_row

data_municipios <- data_municipios_tidy

2.3 Educacion

Eliminamos la columna CÓDIGO_ETC, pues no interesa para el analisis.

data_educacion_tidy <- data_educacion_raw

data_educacion_tidy <- data_educacion_tidy[, -which(colnames(data_educacion_tidy) == "CÓDIGO_ETC")]
str(data_educacion_tidy)
## 'data.frame':    661 obs. of  36 variables:
##  $ AÑO                        : int  2012 2013 2011 2014 2017 2015 2016 2014 2011 2013 ...
##  $ ETC                        : Factor w/ 95 levels "Amazonas (ETC)",..: 1 1 1 1 1 1 1 2 2 2 ...
##  $ POBLACIÓN_5_16             : int  22194 22123 22223 22167 22269 22212 22243 586947 599438 590211 ...
##  $ TASA_MATRICULACIÓN_5_16    : num  8.19e+14 8.18e+01 8.23e+01 8.21e+01 8.36e+01 ...
##  $ COBERTURA_NETA             : num  81.9 81.8 82.3 82.1 82.1 ...
##  $ COBERTURA_NETA_TRANSICIÓN  : num  60.2 48.4 63.7 43.9 49 ...
##  $ COBERTURA_NETA_PRIMARIA    : num  85.6 84 87.2 84.9 80.6 ...
##  $ COBERTURA_NETA_SECUNDARIA  : num  53.3 58.2 50.6 57.7 60.7 ...
##  $ COBERTURA_NETA_MEDIA       : num  22.3 22.1 21.9 23.1 30.1 ...
##  $ COBERTURA_BRUTA            : num  94.8 95.4 94.5 95.7 96.6 ...
##  $ COBERTURA_BRUTA_TRANSICIÓN : num  60.2 96.9 94.5 89.5 92.6 ...
##  $ COBERTURA_BRUTA_PRIMARIA   : num  85.6 111.8 117.8 114 108 ...
##  $ COBERTURA_BRUTA_SECUNDARIA : num  53.3 91.2 82.5 89.1 94.3 ...
##  $ COBERTURA_BRUTA_MEDIA      : num  22.3 59.6 58 63.3 72.2 ...
##  $ TAMAÑO_PROMEDIO_DE_GRUPO   : num  19.3 27.6 14.9 20.3 21 ...
##  $ SEDES_CONECTADAS_A_INTERNET: num  20.9 12.8 36.4 16.5 16.5 ...
##  $ DESERCIÓN                  : num  4.7 3.29 5.46 3.04 4.88 4.76 5.06 2.68 4.16 3.84 ...
##  $ DESERCIÓN_TRANSICIÓN       : num  5.16 3.16 5.56 2.97 6.38 4.54 5.23 2.4 3.89 3.36 ...
##  $ DESERCIÓN_PRIMARIA         : num  2.3 1.82 3.67 1.95 3.06 2.53 2.75 2.26 3.93 3.27 ...
##  $ DESERCIÓN_SECUNDARIA       : num  7.97 5.26 8.21 4.67 6.98 8 8.49 3.55 4.71 5.03 ...
##  $ DESERCIÓN_MEDIA            : num  8.06 5.57 7.9 4.35 6.23 6.69 5.96 2.23 3.87 3.28 ...
##  $ APROBACIÓN                 : num  93.7 95.8 91.2 96.9 87.5 ...
##  $ APROBACIÓN_TRANSICIÓN      : num  94.8 96.8 94.3 97 92.7 ...
##  $ APROBACIÓN_PRIMARIA        : num  95.8 97 92.8 98 90 ...
##  $ APROBACIÓN_SECUNDARIA      : num  90.7 94.2 88.6 95.3 82 ...
##  $ APROBACIÓN_MEDIA           : num  90 92.3 85.2 95.7 86.6 ...
##  $ REPROBACIÓN                : num  1.56 0.93 3.38 0.03 7.67 6.01 5.83 1.02 3.67 5.01 ...
##  $ REPROBACIÓN_TRANSICIÓN     : num  0 0 0.17 0 0.91 0.27 0.32 0.06 0.13 0.17 ...
##  $ REPROBACIÓN_PRIMARIA       : num  1.92 1.13 3.5 0.03 6.91 6.92 5.97 0.84 3.2 4.74 ...
##  $ REPROBACIÓN_SECUNDARIA     : num  1.35 0.56 3.16 0.05 11.01 ...
##  $ REPROBACIÓN_MEDIA          : num  1.98 2.12 6.95 0 7.19 4.79 5.79 1.44 5.69 6.06 ...
##  $ REPITENCIA                 : num  3.9 4.32 1.65 6.3 5.96 5.15 6.61 1.87 2.02 1.7 ...
##  $ REPITENCIA_TRANSICIÓN      : num  0.67 2.46 0.65 2.77 3.3 1.36 1.66 0.19 0.15 0.19 ...
##  $ REPITENCIA_PRIMARIA        : num  3.32 4.41 2.02 6.83 7.06 5.14 7.5 1.77 1.94 1.59 ...
##  $ REPITENCIA_SECUNDARIA      : num  6.17 5.16 1.39 7.25 6.05 6.39 7.17 2.69 2.89 2.44 ...
##  $ REPITENCIA_MEDIA           : num  3.39 2.58 1.34 3.17 2.42 4.15 4.14 1.09 1.24 1.19 ...

Normalizamos los nombres de las columnas, llevandolas a minuscula.

colnames(data_educacion_tidy) <- sapply(colnames(data_educacion_tidy), tolower)

Conservamos solo el año 2017 y posteriormente eliminamos la columna.

data_educacion_tidy <- data_educacion_tidy[data_educacion_tidy$año == 2017, ]
data_educacion_tidy <- data_educacion_tidy[, -which(colnames(data_educacion_tidy) == "año")]

str(data_educacion_tidy)
## 'data.frame':    95 obs. of  35 variables:
##  $ etc                        : Factor w/ 95 levels "Amazonas (ETC)",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ población_5_16             : int  22269 588225 49431 75197 15106 54421 112847 37581 237521 93422 ...
##  $ tasa_matriculación_5_16    : num  83.6 82.4 59 75 67.8 ...
##  $ cobertura_neta             : num  82.1 82.3 59 75 67.6 ...
##  $ cobertura_neta_transición  : num  49 51.2 33 47.3 51.2 ...
##  $ cobertura_neta_primaria    : num  80.6 79.7 55.6 74 67.8 ...
##  $ cobertura_neta_secundaria  : num  60.7 68.3 52.2 58.4 59.7 ...
##  $ cobertura_neta_media       : num  30.1 36.7 26.6 30.9 37.8 ...
##  $ cobertura_bruta            : num  96.6 93.4 71.1 86.6 72.4 ...
##  $ cobertura_bruta_transición : num  92.6 71.9 51.3 83.2 67.1 ...
##  $ cobertura_bruta_primaria   : num  108 102 72.4 97 77.7 ...
##  $ cobertura_bruta_secundaria : num  94.3 99.7 82.9 85.6 75.6 ...
##  $ cobertura_bruta_media      : num  72.2 69.5 55.3 62.2 55.6 ...
##  $ tamaño_promedio_de_grupo   : num  21 29.5 35.8 21.8 27.4 ...
##  $ sedes_conectadas_a_internet: num  16.5 22.8 46.9 35.8 79.2 ...
##  $ deserción                  : num  4.88 4.9 4.99 3.63 1.15 4.41 1.59 2 1.14 3.06 ...
##  $ deserción_transición       : num  6.38 4.11 3.3 3.9 0.75 4.53 2.37 2.96 1.84 2.94 ...
##  $ deserción_primaria         : num  3.06 3.87 3.52 3.28 1.29 3.02 1.51 1.54 1.05 2.71 ...
##  $ deserción_secundaria       : num  6.98 6.76 7.65 4.23 1.13 5.91 1.63 2.38 1.21 3.82 ...
##  $ deserción_media            : num  6.23 4.19 3.88 3.21 0.9 4.3 1.31 1.94 0.86 2.14 ...
##  $ aprobación                 : num  87.5 90 85 96.3 97.9 ...
##  $ aprobación_transición      : num  92.7 95.7 96.1 96.1 99.2 ...
##  $ aprobación_primaria        : num  90 91.3 88.1 96.7 98.1 ...
##  $ aprobación_secundaria      : num  82 86.5 77.4 95.8 97 ...
##  $ aprobación_media           : num  86.6 91 88.7 96.1 98.6 ...
##  $ reprobación                : num  7.67 5.12 10.02 0.07 0.97 ...
##  $ reprobación_transición     : num  0.91 0.16 0.62 NA NA 0.25 0.29 0.98 1.84 0.36 ...
##  $ reprobación_primaria       : num  6.91 4.8 8.41 NA 0.62 4.47 5.9 7.18 3.39 0.83 ...
##  $ reprobación_secundaria     : num  11.01 6.72 14.94 NA 1.82 ...
##  $ reprobación_media          : num  7.19 4.8 7.39 0.73 0.5 6.31 4.08 9.65 2.75 0.83 ...
##  $ repitencia                 : num  5.96 5.44 0.61 7.17 2.04 0.74 1.4 5.27 1.28 1.45 ...
##  $ repitencia_transición      : num  3.3 1.26 0.1 5.85 1.34 0.04 0.53 1.35 1.36 0.25 ...
##  $ repitencia_primaria        : num  7.06 6.1 0.4 6.85 1.22 0.53 1.59 3.62 1.42 1.48 ...
##  $ repitencia_secundaria      : num  6.05 6.38 1.1 9.05 3.75 1.24 1.67 8.86 1.44 1.96 ...
##  $ repitencia_media           : num  2.42 1.96 0.26 3.68 0.8 0.35 0.53 3.64 0.35 0.41 ...

Transformamos las ETC en mayuscula y removemos el (ETC), lo cual dificulta el join con otro dataset.

remove_etc <- function(city_factor) {
  city <- as.character(city_factor)
  no_capital <- gsub(" \\(ETC\\)", "", city)

  return(no_capital)
}

data_educacion_tidy$etc <- sapply(data_educacion_tidy$etc, toupper)
data_educacion_tidy$etc <- sapply(data_educacion_tidy$etc, remove_etc)
data_educacion_tidy$etc <- sapply(data_educacion_tidy$etc, remove_capital)

data_educacion <- data_educacion_tidy

2.4 Armas Incautadas en 2017

Este data set cuenta con las siguientes variables que representan códigos de numeración o tienen solo un valor asignado, de manera que se pasan a eliminar:

  • Fecha: No se pretende realizar analisis de hurtos reportados en el tiempo
  • Hora: No se pretende realizar analisis de hurtos reportados en el tiempo
  • Permiso: Demasiados factores para analizar, no sería posible responder una de las preguntas observando esta variable
  • Código.DANE: No tiene significado
  • Cantidad: No tiene significado
removable_columns_2 <- c("FECHA", "HORA", "PERMISO", "CÓDIGO.DANE", "CANTIDAD")

data_incauta_tidy <- data_incauta_raw[, -which(colnames(data_incauta_raw) %in% removable_columns_2)]

str(data_incauta_tidy)
## 'data.frame':    20508 obs. of  6 variables:
##  $ DEPARTAMENTO  : Factor w/ 32 levels "AMAZONAS","ANTIOQUIA",..: 1 2 2 2 2 5 5 5 5 5 ...
##  $ MUNICIPIO     : Factor w/ 978 levels "ABEJORRAL","ABREGO",..: 447 38 310 766 827 511 511 511 511 511 ...
##  $ DÍA           : Factor w/ 7 levels "Domingo","Jueves",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ CLASE.DE.ARMA : Factor w/ 11 levels "AMETRALLADORA",..: 10 10 10 9 3 2 5 7 9 10 ...
##  $ ZONA          : Factor w/ 2 levels "RURAL","URBANA": 1 2 1 1 1 1 1 1 1 1 ...
##  $ CLASE.DE.SITIO: Factor w/ 128 levels "AEROPUERTO","ALCALDIA",..: 127 127 127 50 50 128 128 128 128 128 ...

Por último, se pasa a normalizar los nombres de las columnas para acciones de preprocesamiento.

colnames(data_incauta_tidy) <- c("departamento", "municipio", "dia", "clase_de_arma", "zona", "clase_de_sitio")
str(data_incauta_tidy)
## 'data.frame':    20508 obs. of  6 variables:
##  $ departamento  : Factor w/ 32 levels "AMAZONAS","ANTIOQUIA",..: 1 2 2 2 2 5 5 5 5 5 ...
##  $ municipio     : Factor w/ 978 levels "ABEJORRAL","ABREGO",..: 447 38 310 766 827 511 511 511 511 511 ...
##  $ dia           : Factor w/ 7 levels "Domingo","Jueves",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ clase_de_arma : Factor w/ 11 levels "AMETRALLADORA",..: 10 10 10 9 3 2 5 7 9 10 ...
##  $ zona          : Factor w/ 2 levels "RURAL","URBANA": 1 2 1 1 1 1 1 1 1 1 ...
##  $ clase_de_sitio: Factor w/ 128 levels "AEROPUERTO","ALCALDIA",..: 127 127 127 50 50 128 128 128 128 128 ...

3 Pre-procesamiento

Calculamos indice de hurtos por municipio (por cada 1000 personas), dividiendo la cantidad de hurtos reportados / población del municipio.

hurtos_per_muni <- data_hurto %>%
  group_by(municipio) %>%
  summarize(
    cantidad_hurtos = n()
  )

muni_joined <- data_municipios %>%
  left_join(hurtos_per_muni, by = c("municipio" = "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
attach(muni_joined)
muni_joined$indice_hurtos <- (cantidad_hurtos / poblacion_2017) * 1000
detach(muni_joined)

muni_joined_sorted <- muni_joined[order(-muni_joined$poblacion_2017), ]

sum(is.na(muni_joined$cantidad_hurtos))
## [1] 155

Visualizamos los 30 primeros municipios en indice de hurtos.

muni_top <- head(muni_joined_sorted, 30)
muni_top_sorted <- muni_top[order(-muni_top$indice_hurtos), ]
muni_top_sorted
##                 municipio poblacion_2017 cantidad_hurtos indice_hurtos
## 716                 PASTO         450645            4460     9.8969255
## 362               POPAYÁN         282453            2342     8.2916450
## 149           BOGOTÁ D.C.        8080734           64188     7.9433378
## 846           BUCARAMANGA         528497            4068     7.6973001
## 1                MEDELLÍN        2508452           17522     6.9851845
## 687         VILLAVICENCIO         506012            3514     6.9444993
## 605                 NEIVA         345806            2296     6.6395609
## 1006                 CALI        2420114           14681     6.0662432
## 832               PEREIRA         474335            2701     5.6942878
## 959                IBAGUÉ         564076            3010     5.3361604
## 820               ARMENIA         299712            1518     5.0648623
## 47               ENVIGADO         232903            1177     5.0536060
## 319             MANIZALES         398830            1883     4.7213098
## 933             SINCELEJO         282868            1327     4.6912341
## 657           SANTA MARTA         499391            2329     4.6636804
## 126          BARRANQUILLA        1228271            5585     4.5470421
## 878         FLORIDABLANCA         266617            1211     4.5420960
## 59                 ITAGUI         273927            1164     4.2493073
## 1032              PALMIRA         308669            1140     3.6932766
## 780                CÚCUTA         662673            2267     3.4209935
## 19                  BELLO         473423            1594     3.3669678
## 404            VALLEDUPAR         473251            1554     3.2836698
## 429              MONTERÍA         453931            1437     3.1656794
## 545                SOACHA         533718            1309     2.4526061
## 642              RIOHACHA         277868             625     2.2492694
## 1041                TULUÁ         216619             470     2.1697081
## 150             CARTAGENA        1024882            1954     1.9065610
## 145               SOLEDAD         649111            1079     1.6622735
## 1012         BUENAVENTURA         415770             637     1.5320971
## 777  SAN ANDRES DE TUMACO         208318             108     0.5184382

Añadimos la información del dataset de educación.

edu_joined <- muni_joined %>%
  left_join(data_educacion, by = c("municipio" = "etc"), copy = TRUE)

str(edu_joined)
## 'data.frame':    1122 obs. of  38 variables:
##  $ municipio                  : chr  "MEDELLÍN" "ABEJORRAL" "ABRIAQUÍ" "ALEJANDRÍA" ...
##  $ poblacion_2017             : int  2508452 19096 2019 3393 29980 22414 46621 9216 11139 17521 ...
##  $ cantidad_hurtos            : int  17522 16 2 1 28 27 33 6 2 17 ...
##  $ indice_hurtos              : num  6.985 0.838 0.991 0.295 0.934 ...
##  $ población_5_16             : int  370202 NA NA NA NA NA NA NA NA NA ...
##  $ tasa_matriculación_5_16    : num  101 NA NA NA NA ...
##  $ cobertura_neta             : num  101 NA NA NA NA ...
##  $ cobertura_neta_transición  : num  73.1 NA NA NA NA ...
##  $ cobertura_neta_primaria    : num  98.6 NA NA NA NA ...
##  $ cobertura_neta_secundaria  : num  89.9 NA NA NA NA ...
##  $ cobertura_neta_media       : num  54.9 NA NA NA NA ...
##  $ cobertura_bruta            : num  116 NA NA NA NA ...
##  $ cobertura_bruta_transición : num  88.5 NA NA NA NA ...
##  $ cobertura_bruta_primaria   : num  114 NA NA NA NA ...
##  $ cobertura_bruta_secundaria : num  130 NA NA NA NA ...
##  $ cobertura_bruta_media      : num  108 NA NA NA NA ...
##  $ tamaño_promedio_de_grupo   : num  34 NA NA NA NA ...
##  $ sedes_conectadas_a_internet: num  98.3 NA NA NA NA ...
##  $ deserción                  : num  3.46 NA NA NA NA NA NA NA NA NA ...
##  $ deserción_transición       : num  3.05 NA NA NA NA NA NA NA NA NA ...
##  $ deserción_primaria         : num  2.71 NA NA NA NA NA NA NA NA NA ...
##  $ deserción_secundaria       : num  4.68 NA NA NA NA NA NA NA NA NA ...
##  $ deserción_media            : num  2.8 NA NA NA NA NA NA NA NA NA ...
##  $ aprobación                 : num  85.3 NA NA NA NA ...
##  $ aprobación_transición      : num  96.8 NA NA NA NA NA NA NA NA NA ...
##  $ aprobación_primaria        : num  88.6 NA NA NA NA ...
##  $ aprobación_secundaria      : num  77.8 NA NA NA NA ...
##  $ aprobación_media           : num  89.6 NA NA NA NA ...
##  $ reprobación                : num  11.2 NA NA NA NA ...
##  $ reprobación_transición     : num  0.15 NA NA NA NA NA NA NA NA NA ...
##  $ reprobación_primaria       : num  8.7 NA NA NA NA NA NA NA NA NA ...
##  $ reprobación_secundaria     : num  17.5 NA NA NA NA ...
##  $ reprobación_media          : num  7.57 NA NA NA NA NA NA NA NA NA ...
##  $ repitencia                 : num  10.2 NA NA NA NA ...
##  $ repitencia_transición      : num  1.37 NA NA NA NA NA NA NA NA NA ...
##  $ repitencia_primaria        : num  8.96 NA NA NA NA NA NA NA NA NA ...
##  $ repitencia_secundaria      : num  15 NA NA NA NA ...
##  $ repitencia_media           : num  4.83 NA NA NA NA NA NA NA NA NA ...

Removemos las filas con NA y con indice de hurto mayor a 10.

edu_joined <- edu_joined[complete.cases(edu_joined), ] %>% filter(indice_hurtos <= 10)
str(edu_joined)
## 'data.frame':    59 obs. of  38 variables:
##  $ municipio                  : chr  "MEDELLÍN" "BELLO" "CALDAS" "NARIÑO" ...
##  $ poblacion_2017             : int  2508452 473423 79652 17686 124219 1228271 649111 1024882 12342 123906 ...
##  $ cantidad_hurtos            : int  17522 1594 141 9 654 5585 1079 1954 14 160 ...
##  $ indice_hurtos              : num  6.985 3.367 1.77 0.509 5.265 ...
##  $ población_5_16             : int  370202 93422 125643 223685 24795 237521 140244 210840 267545 28640 ...
##  $ tasa_matriculación_5_16    : num  101.3 78.5 73.6 63.5 82.8 ...
##  $ cobertura_neta             : num  101.2 78.5 73.5 63.5 82.5 ...
##  $ cobertura_neta_transición  : num  73.1 53.4 48.6 33 57 ...
##  $ cobertura_neta_primaria    : num  98.6 77.2 67.7 59.3 76.6 ...
##  $ cobertura_neta_secundaria  : num  89.9 67.3 65.1 50.5 74 ...
##  $ cobertura_neta_media       : num  54.9 38.3 40.5 25.5 46.3 ...
##  $ cobertura_bruta            : num  116.3 89.8 84.3 76.2 94 ...
##  $ cobertura_bruta_transición : num  88.5 65.6 61.1 60.1 70.9 ...
##  $ cobertura_bruta_primaria   : num  114 91.3 84.8 85.4 90.2 ...
##  $ cobertura_bruta_secundaria : num  130.2 101.8 93.4 78.9 106.5 ...
##  $ cobertura_bruta_media      : num  107.6 74.4 75.9 56.1 89.3 ...
##  $ tamaño_promedio_de_grupo   : num  34 34.5 26.5 17 31.1 ...
##  $ sedes_conectadas_a_internet: num  98.3 93.7 31.2 21.6 100 ...
##  $ deserción                  : num  3.46 3.06 3.73 1.52 3.92 1.14 1.22 2.77 3.1 3.31 ...
##  $ deserción_transición       : num  3.05 2.94 3.8 1.18 2.38 1.84 1.9 4.26 2.93 6.62 ...
##  $ deserción_primaria         : num  2.71 2.71 2.85 1.03 2.41 1.05 1.24 2.33 2.11 2.82 ...
##  $ deserción_secundaria       : num  4.68 3.82 4.95 2.06 6.06 1.21 1.23 3.1 4.33 3.49 ...
##  $ deserción_media            : num  2.8 2.14 3.28 2.15 3.38 0.86 0.74 2.51 3.9 2.12 ...
##  $ aprobación                 : num  85.3 96.1 88.6 97.4 80.2 ...
##  $ aprobación_transición      : num  96.8 96.7 95.8 98.3 97 ...
##  $ aprobación_primaria        : num  88.6 96.5 91 97.9 86.1 ...
##  $ aprobación_secundaria      : num  77.8 95.3 83.8 96.7 69.3 ...
##  $ aprobación_media           : num  89.6 97 90.4 97.1 85 ...
##  $ reprobación                : num  11.23 0.84 7.64 1.06 15.87 ...
##  $ reprobación_transición     : num  0.15 0.36 0.37 0.48 0.62 1.84 0.77 0.41 0.12 0.52 ...
##  $ reprobación_primaria       : num  8.7 0.83 6.14 1.11 11.53 ...
##  $ reprobación_secundaria     : num  17.51 0.92 11.23 1.21 24.61 ...
##  $ reprobación_media          : num  7.57 0.83 6.36 0.73 11.64 ...
##  $ repitencia                 : num  10.16 1.45 2.08 2.61 11.91 ...
##  $ repitencia_transición      : num  1.37 0.25 0.28 0.9 1.76 1.36 0.47 7.78 1.91 3.05 ...
##  $ repitencia_primaria        : num  8.96 1.48 1.64 2.3 9.87 1.42 0.35 7.35 2.98 3.4 ...
##  $ repitencia_secundaria      : num  14.98 1.96 3.32 3.75 17.17 ...
##  $ repitencia_media           : num  4.83 0.41 0.98 1.46 7.9 0.35 0.2 3.82 1.63 1.86 ...

4 Analisis Univariado

4.1 Hurtos 2017

columns_f <- c("edad", "escolaridad", "dia", "municipio", "movil_agresor", "clase_de_empleado", "estado_civil")

data_hurto_f <- data_hurto[, colnames(data_hurto) %in% columns_f]

summary(data_hurto_f)
##         municipio            dia                      movil_agresor   
##  BOGOTÁ D.C. :64188   Domingo  :19820   A PIE                :130512  
##  MEDELLÍN    :17522   Lunes    :23454   PASAJERO MOTOCICLETA : 20200  
##  CALI        :14681   Martes   :27086   CONDUCTOR MOTOCICLETA: 13051  
##  BARRANQUILLA: 5585   Miércoles:27433   PASAJERO BUS         :  7516  
##  PASTO       : 4460   Jueves   :27603   BICICLETA            :  4533  
##  BUCARAMANGA : 4068   Viernes  :28914   CONDUCTOR VEHICULO   :  1773  
##  (Other)     :71914   Sábado   :28108   (Other)              :  4833  
##       edad             estado_civil             clase_de_empleado 
##  Min.   :  0.00   -          :    0   EMPLEADO PARTICULAR:105331  
##  1st Qu.: 25.00   CASADO     :37575   INDEPENDIENTE      : 31676  
##  Median : 33.00   DIVORCIADO : 3041   ESTUDIANTE         : 14312  
##  Mean   : 35.17   SEPARADO   : 2605   AMA DE CASA        :  6852  
##  3rd Qu.: 43.00   SOLTERO    :96804   COMERCIANTE        :  6747  
##  Max.   :450.00   UNION LIBRE:40385   EMPLEADO PUBLICO   :  3644  
##                   VIUDO      : 2008   (Other)            : 13856  
##        escolaridad   
##  NO REPORTADO: 1246  
##  ANALFABETA  :  237  
##  PRIMARIA    :26578  
##  SECUNDARIA  :85978  
##  TECNOLOGO   : 5948  
##  TECNICO     :14530  
##  SUPERIOR    :47901
columns_f_l <- c("municipio", "departamento", "zona", "dia", "clase_de_sitio", "arma_empleada", "movil_victima", "sexo")
data_hurto_f_l <- data_hurto[, colnames(data_hurto) %in% columns_f_l]

summary(data_hurto_f_l)
##        departamento          municipio            dia       
##  CUNDINAMARCA:68946   BOGOTÁ D.C. :64188   Domingo  :19820  
##  ANTIOQUIA   :25853   MEDELLÍN    :17522   Lunes    :23454  
##  VALLE       :19662   CALI        :14681   Martes   :27086  
##  SANTANDER   : 8242   BARRANQUILLA: 5585   Miércoles:27433  
##  ATLÁNTICO   : 7220   PASTO       : 4460   Jueves   :27603  
##  NARIÑO      : 5610   BUCARAMANGA : 4068   Viernes  :28914  
##  (Other)     :46885   (Other)     :71914   Sábado   :28108  
##      zona                                   clase_de_sitio  
##  OTRAS :    11   VIAS PUBLICAS                     :108706  
##  RURAL :  9534   CASAS DE HABITACION               :  5522  
##  URBANA:172873   FRENTE A RESIDENCIAS - VIA PUBLICA:  3064  
##                  CARRETERA                         :  2595  
##                  LOCAL COMERCIAL                   :  2523  
##                  CALLEJÓN                          :  2435  
##                  (Other)                           : 57573  
##                      arma_empleada                 movil_victima   
##  SIN EMPLEO DE ARMAS        :87924   A PIE                :141171  
##  ARMA BLANCA / CORTOPUNZANTE:43135   CONDUCTOR VEHICULO   : 12248  
##  ARMA DE FUEGO              :35329   PASAJERO BUS         : 10134  
##  CONTUNDENTES               :13833   CONDUCTOR MOTOCICLETA:  6384  
##  ESCOPOLAMINA               : 1862   BICICLETA            :  4262  
##  NO REPORTADO               :  160   PASAJERO VEHICULO    :  1993  
##  (Other)                    :  175   (Other)              :  6226  
##         sexo       
##  -        :     0  
##  FEMENINO : 77497  
##  MASCULINO:104921  
##                    
##                    
##                    
## 

Se utilizara la siguiente funcion para graficar los factores del data set.

plot_factor <- function(data, column, top = 30) {
  group_count <- data %>%
    group_by_(column) %>%
    summarise(
      cantidad_hurtos = n()
    ) %>%
    arrange(desc(cantidad_hurtos)) %>%
    top_n(top)

  ggplot(group_count) +
    geom_bar(
      aes_string(x = paste0("reorder(", column, ", cantidad_hurtos)"), y = "cantidad_hurtos"),
      stat = "identity"
    ) +
    coord_flip() +
    labs(x = column, y = "Cantidad de hurtos reportados") +
    theme(axis.text.y = element_text(size = (rel(0.8))))
}

4.1.1 Municipio

plot_factor(data_hurto_f, "municipio", 20)
## Selecting by cantidad_hurtos

4.1.2 Día

plot_factor(data_hurto_f, "dia")
## Selecting by cantidad_hurtos

4.1.3 Móvil Agresor

plot_factor(data_hurto_f, "movil_agresor", 20)
## Selecting by cantidad_hurtos

4.1.4 Estado Civil

plot_factor(data_hurto_f, "estado_civil")
## Selecting by cantidad_hurtos

4.1.5 Clase de Empleado

plot_factor(data_hurto_f, "clase_de_empleado", 20)
## Selecting by cantidad_hurtos

4.1.6 Escolaridad

plot_factor(data_hurto_f, "escolaridad")
## Selecting by cantidad_hurtos

4.1.7 Edad

edad_count <- data_hurto_f %>%
  group_by(edad) %>%
  summarise(
    cantidad_hurtos = n()
  )

ggplot(edad_count) +
  geom_point(aes(x = edad, y = cantidad_hurtos))

Existen unos datos atipicos de edades mayores a 100, los eliminamos par visualizar la distribucion resultante.

edad_count_fix <- edad_count %>%
  filter(edad < 100)

ggplot(edad_count_fix) +
  geom_point(aes(x = edad, y = cantidad_hurtos))

4.1.8 Municipio

plot_factor(data_hurto_f_l, "municipio", 20)
## Selecting by cantidad_hurtos

4.1.9 Departamentos

plot_factor(data_hurto_f_l, "departamento", 20)
## Selecting by cantidad_hurtos

4.1.10 Zona

plot_factor(data_hurto_f_l, "zona", 20)
## Selecting by cantidad_hurtos

4.1.11 Clase de sitio

plot_factor(data_hurto_f_l, "clase_de_sitio", 20)
## Selecting by cantidad_hurtos

4.1.12 Arma empleada

plot_factor(data_hurto_f_l, "arma_empleada", 20)
## Selecting by cantidad_hurtos

4.1.13 Movil Víctima

plot_factor(data_hurto_f_l, "movil_victima", 20)
## Selecting by cantidad_hurtos

4.1.14 Sexo

plot_factor(data_hurto_f_l, "sexo", 20)
## Selecting by cantidad_hurtos

4.2 Educación

4.2.1 Población entre 5 y 16 años

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, población_5_16), y = población_5_16)) +
  coord_flip()

4.2.2 Tasa matriculacion entre 5 y 16 años

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, tasa_matriculación_5_16), y = tasa_matriculación_5_16)) +
  coord_flip()

4.2.3 Cobertura neta

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, cobertura_neta), y = cobertura_neta)) +
  coord_flip()

4.2.4 Cobertura bruta

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, cobertura_bruta), y = cobertura_bruta)) +
  coord_flip()

4.2.5 Tamaño promedio de grupo

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, tamaño_promedio_de_grupo), y = tamaño_promedio_de_grupo)) +
  coord_flip()

4.2.6 Sedes conectadas a internet

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, sedes_conectadas_a_internet), y = sedes_conectadas_a_internet)) +
  coord_flip()

4.2.7 Deserción

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, deserción), y = deserción)) +
  coord_flip()

4.2.8 Aprobación

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, aprobación), y = aprobación)) +
  coord_flip()

4.2.9 Reprobación

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, reprobación), y = reprobación)) +
  coord_flip()

4.2.10 Repitencia

ggplot(data_educacion) +
  geom_point(aes(x = reorder(etc, repitencia), y = repitencia)) +
  coord_flip()

4.3 Armas Incautadas 2017

Aquí se tiene el analisis univariado para las siguientes variables:

  • Departamento
  • Municipio
  • Día
  • Clase
  • Zona
  • Clase de sitio

A continuación empezamos a analizar cada una de las variables listadas y a observar como está la distribución de estos datos.

data_armas <- data_incauta_tidy
columns_f_l_armas <- c("departamento", "municipio", "dia", "clase_de_arma", "zona", "clase_de_sitio")
data_hurto_f_l_armas <- data_armas[, colnames(data_armas) %in% columns_f_l_armas]
summary(data_hurto_f_l_armas)
##              departamento              municipio            dia      
##  CUNDINAMARCA      :3218   BOGOTÁ D.C. (CT) : 1829   Domingo  :3172  
##  VALLE             :1999   BARRANQUILLA (CT): 1066   Jueves   :3061  
##  ANTIOQUIA         :1958   CALI (CT)        : 1061   Lunes    :2876  
##  ATLÁNTICO         :1648   MEDELLÍN (CT)    :  563   Martes   :2736  
##  SANTANDER         :1488   CÚCUTA (CT)      :  403   Miércoles:2802  
##  NORTE DE SANTANDER:1003   CARTAGENA (CT)   :  375   Sábado   :2840  
##  (Other)           :9194   (Other)          :15211   Viernes  :3021  
##            clase_de_arma      zona      
##  REVOLVER         :8695   RURAL : 6150  
##  ESCOPETA         :5503   URBANA:14358  
##  PISTOLA          :4573                 
##  ESCOPETA DE FISTO:1440                 
##  FUSIL / RIFLE    : 154                 
##  SUBAMETRALLADORA :  82                 
##  (Other)          :  61                 
##                      clase_de_sitio 
##  VIAS PUBLICAS              :14030  
##  FINCAS Y SIMILARES         : 1408  
##  CARRETERA                  : 1301  
##  CASAS DE HABITACION        : 1014  
##  TRAMO DE VIA               :  672  
##  INSTALACIONES DE LA POLICIA:  411  
##  (Other)                    : 1672

Este bloque de código nos permite crear las visualizaciones para cada uno de los factores analizados. De esta manera logramos minimizar las lineas de código que vamos a tener que usar.

plot_factor <- function(data, column, top = 30) {
  group_count <- data %>%
    group_by_(column) %>%
    summarise(
      cantidad_armas = n()
    ) %>%
    arrange(desc(cantidad_armas)) %>%
    top_n(top)
  ggplot(group_count) +
    geom_bar(
      aes_string(x = paste0("reorder(", column, ", cantidad_armas)"), y = "cantidad_armas"),
      stat = "identity"
    ) +
    coord_flip() +
    labs(x = column, y = "Cantidad reportada de armas incautadas") +
    theme(axis.text.y = element_text(size = (rel(0.8))))
}

4.3.1 Departamentos

plot_factor(data_hurto_f_l_armas, "departamento", 20)
## Selecting by cantidad_armas

4.3.2 Municipio

plot_factor(data_hurto_f_l_armas, "municipio", 20)
## Selecting by cantidad_armas

4.3.3 Día

plot_factor(data_hurto_f_l_armas, "dia", 20)
## Selecting by cantidad_armas

4.3.4 Clase de arma empleada

plot_factor(data_hurto_f_l_armas, "clase_de_arma", 20)
## Selecting by cantidad_armas

4.3.5 Zona

plot_factor(data_hurto_f_l_armas, "zona", 20)
## Selecting by cantidad_armas

4.3.6 Clase de sitio

plot_factor(data_hurto_f_l_armas, "clase_de_sitio", 20)
## Selecting by cantidad_armas

5 Analisis Multivariado

5.1 Hurto

Se utilizara esta funcion para obtener la moda de un factor de los municipios

get_mode <- function(var) {
  uniqv <- unique(var)
  uniqv[which.max(tabulate(match(var, uniqv)))]
}

5.1.1 Escolaridad

Se obtiene la moda de escolaridad de las victimas de robos en cada municipio, y comparamos esto contra el indice de criminalidad del mismo. Para los rangos: ANALFABETA -> SECUNDARIA y TECNOLOGO -> SUPERIOR encontramos que el indice (y su varianza) crece mediante crece el nivel de escolaridad. Esta relación no parece tener algún significado, aunque si es posible (para un indice menor a 2, comparando SECUNDARIA y TECNOLOGO) separar municipios con bajos y “altos” indices. Pero cuando se utiliza un maximo indice de 10, existen demasiados outliers, lo cual indica que esta variable no es suficiente para explicar el indice.

5.1.1.1 Indice <= 10

esc_mode <- data_hurto_f %>%
  select(municipio, escolaridad) %>%
  group_by(municipio) %>%
  summarise(
    moda_escolaridad = get_mode(escolaridad)
  )

esc_joined <- muni_joined %>%
  filter(indice_hurtos <= 10) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(esc_joined, aes(x = moda_escolaridad, y = indice_hurtos, fill = moda_escolaridad)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X")

5.1.1.2 Indice <= 2

esc_mode <- data_hurto_f %>%
  select(municipio, escolaridad) %>%
  group_by(municipio) %>%
  summarise(
    moda_escolaridad = get_mode(escolaridad)
  )

esc_joined <- muni_joined %>%
  filter(indice_hurtos <= 2) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(esc_joined, aes(x = moda_escolaridad, y = indice_hurtos, fill = moda_escolaridad)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X")

5.1.2 Dia

Entre Domingo y Sábado, se observa que el indice de criminalidad decrece levemente hasta el miercoles, y luego vuelve a subir.

5.1.2.1 Indice <= 10

esc_mode <- data_hurto_f %>%
  select(municipio, dia) %>%
  group_by(municipio) %>%
  summarise(
    moda_dia = get_mode(dia)
  )

dia_joined <- muni_joined %>%
  filter(indice_hurtos <= 10) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(dia_joined, aes(x = moda_dia, y = indice_hurtos, fill = moda_dia)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X")

5.1.2.2 Indice <= 2

esc_mode <- data_hurto_f %>%
  select(municipio, dia) %>%
  group_by(municipio) %>%
  summarise(
    moda_dia = get_mode(dia)
  )

dia_joined <- muni_joined %>%
  filter(indice_hurtos <= 2) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(dia_joined, aes(x = moda_dia, y = indice_hurtos, fill = moda_dia)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X")

5.1.3 Movil Agresor

El móvil del agresor no parece tener alguna forma de distinguir entre altos y bajos indices de hurtos.

5.1.3.1 Indice <= 10

esc_mode <- data_hurto_f %>%
  select(municipio, movil_agresor) %>%
  group_by(municipio) %>%
  summarise(
    moda_movil_agresor = get_mode(movil_agresor)
  )

movil_agresor_joined <- muni_joined %>%
  filter(indice_hurtos <= 10) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(movil_agresor_joined, aes(x = moda_movil_agresor, y = indice_hurtos, fill = moda_movil_agresor)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X") +
  coord_flip()

5.1.3.2 Indice <= 2

esc_mode <- data_hurto_f %>%
  select(municipio, movil_agresor) %>%
  group_by(municipio) %>%
  summarise(
    moda_movil_agresor = get_mode(movil_agresor)
  )

movil_agresor_joined <- muni_joined %>%
  filter(indice_hurtos <= 2) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(movil_agresor_joined, aes(x = moda_movil_agresor, y = indice_hurtos, fill = moda_movil_agresor)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X") +
  coord_flip()

5.1.4 Edad

5.1.4.1 Indice <= 10

esc_mode <- data_hurto_f %>%
  select(municipio, edad) %>%
  group_by(municipio) %>%
  summarise(
    moda_edad = mean(edad)
  )

edad_joined <- muni_joined %>%
  filter(indice_hurtos <= 10) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(edad_joined, aes(x = moda_edad, y = indice_hurtos, fill = moda_edad)) +
  geom_point() +
  theme(legend.position = "X")

5.1.4.2 Indice <= 2

esc_mode <- data_hurto_f %>%
  select(municipio, edad) %>%
  group_by(municipio) %>%
  summarise(
    moda_edad = mean(edad)
  )

edad_joined <- muni_joined %>%
  filter(indice_hurtos <= 2) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(edad_joined, aes(x = moda_edad, y = indice_hurtos, fill = moda_edad)) +
  geom_point() +
  theme(legend.position = "X")

5.1.5 Estado Civil

5.1.5.1 Indice <= 10

esc_mode <- data_hurto_f %>%
  select(municipio, estado_civil) %>%
  group_by(municipio) %>%
  summarise(
    moda_estado_civil = get_mode(estado_civil)
  )

estado_civil_joined <- muni_joined %>%
  filter(indice_hurtos <= 10) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(estado_civil_joined, aes(x = moda_estado_civil, y = indice_hurtos, fill = moda_estado_civil)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X")

5.1.5.2 Indice <= 2

esc_mode <- data_hurto_f %>%
  select(municipio, estado_civil) %>%
  group_by(municipio) %>%
  summarise(
    moda_estado_civil = get_mode(estado_civil)
  )

estado_civil_joined <- muni_joined %>%
  filter(indice_hurtos <= 2) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(estado_civil_joined, aes(x = moda_estado_civil, y = indice_hurtos, fill = moda_estado_civil)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X")

5.1.6 Clase de Empleado

5.1.6.1 Indice <= 10

esc_mode <- data_hurto_f %>%
  select(municipio, clase_de_empleado) %>%
  group_by(municipio) %>%
  summarise(
    moda_clase_de_empleado = get_mode(clase_de_empleado)
  )

clase_de_empleado_joined <- muni_joined %>%
  filter(indice_hurtos <= 10) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(clase_de_empleado_joined, aes(x = moda_clase_de_empleado, y = indice_hurtos, fill = moda_clase_de_empleado)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X") +
  coord_flip()

5.1.6.2 Indice <= 2

esc_mode <- data_hurto_f %>%
  select(municipio, clase_de_empleado) %>%
  group_by(municipio) %>%
  summarise(
    moda_clase_de_empleado = get_mode(clase_de_empleado)
  )

clase_de_empleado_joined <- muni_joined %>%
  filter(indice_hurtos <= 2) %>%
  left_join(esc_mode, by = c("municipio", "municipio"), copy = TRUE)
## Warning: Column `municipio` joining character vector and factor, coercing
## into character vector
ggplot(clase_de_empleado_joined, aes(x = moda_clase_de_empleado, y = indice_hurtos, fill = moda_clase_de_empleado)) +
  geom_boxplot(alpha = 0.4) +
  theme(legend.position = "X") +
  coord_flip()

5.1.7 Arma Empleada

arma_spread <- data_hurto %>%
  count(municipio, arma_empleada) %>%
  group_by(municipio) %>%
  mutate(prop = n / sum(n)) %>%
  select(-n) %>%
  spread(key = arma_empleada, value = prop)

arma_spread
## # A tibble: 897 x 16
## # Groups:   municipio [899]
##    municipio ALUCINOGENOS `ARMA BLANCA / … `ARMA DE FUEGO` CONTUNDENTES
##    <fct>            <dbl>            <dbl>           <dbl>        <dbl>
##  1 ABEJORRAL           NA           0.0625          0.0625       0.125 
##  2 ABREGO              NA           0.1             0.3          0.1   
##  3 ABRIAQUÍ            NA          NA              NA            0.5   
##  4 ACACÍAS             NA           0.116           0.0773       0.159 
##  5 ACANDÍ              NA           0.2             0.2         NA     
##  6 ACEVEDO             NA           0.182           0.364       NA     
##  7 ACHÍ                NA          NA              NA           NA     
##  8 AGRADO              NA          NA               0.286       NA     
##  9 AGUA DE …           NA           0.0909         NA            0.0909
## 10 AGUACHICA           NA           0.142           0.432        0.0169
## # … with 887 more rows, and 11 more variables: CORTANTES <dbl>,
## #   DIRECTA <dbl>, ESCOPOLAMINA <dbl>, JERINGA <dbl>, `LLAVE
## #   MAESTRA` <dbl>, `NO REPORTADO` <dbl>, PALANCAS <dbl>, PERRO <dbl>,
## #   `SIN EMPLEO DE ARMAS` <dbl>, `SUSTANCIAS TOXICAS` <dbl>,
## #   VEHICULO <dbl>
remove_capital_2 <- function(city_factor2) {
  city <- as.character(city_factor2)
  no_capital <- gsub(" \\(CT\\)", "", city)

  return(no_capital)
}

arma_spread <- arma_spread %>%
  left_join(muni_joined_sorted, by = c("municipio" = "municipio"), copy = TRUE)
## Warning: Column `municipio` joining factor and character vector, coercing
## into character vector
head(arma_spread)
## # A tibble: 6 x 19
## # Groups:   municipio [6]
##   municipio ALUCINOGENOS `ARMA BLANCA / … `ARMA DE FUEGO` CONTUNDENTES
##   <chr>            <dbl>            <dbl>           <dbl>        <dbl>
## 1 ABEJORRAL           NA           0.0625          0.0625        0.125
## 2 ABREGO              NA           0.1             0.3           0.1  
## 3 ABRIAQUÍ            NA          NA              NA             0.5  
## 4 ACACÍAS             NA           0.116           0.0773        0.159
## 5 ACANDÍ              NA           0.2             0.2          NA    
## 6 ACEVEDO             NA           0.182           0.364        NA    
## # … with 14 more variables: CORTANTES <dbl>, DIRECTA <dbl>,
## #   ESCOPOLAMINA <dbl>, JERINGA <dbl>, `LLAVE MAESTRA` <dbl>, `NO
## #   REPORTADO` <dbl>, PALANCAS <dbl>, PERRO <dbl>, `SIN EMPLEO DE
## #   ARMAS` <dbl>, `SUSTANCIAS TOXICAS` <dbl>, VEHICULO <dbl>,
## #   poblacion_2017 <int>, cantidad_hurtos <int>, indice_hurtos <dbl>
arma_spread <- arma_spread[order(-arma_spread$indice_hurtos), ]
head(arma_spread)
## # A tibble: 6 x 19
## # Groups:   municipio [6]
##   municipio ALUCINOGENOS `ARMA BLANCA / … `ARMA DE FUEGO` CONTUNDENTES
##   <chr>            <dbl>            <dbl>           <dbl>        <dbl>
## 1 ARMENIA             NA            0.253           0.125       0.125 
## 2 FLORENCIA           NA            0.285           0.162       0.0686
## 3 SAN ANDR…           NA            0.104           0.111       0.0465
## 4 CALDAS              NA            0.121           0.319       0.0638
## 5 SABANALA…           NA            0.138           0.319       0.0426
## 6 RIONEGRO            NA            0.159           0.156       0.142 
## # … with 14 more variables: CORTANTES <dbl>, DIRECTA <dbl>,
## #   ESCOPOLAMINA <dbl>, JERINGA <dbl>, `LLAVE MAESTRA` <dbl>, `NO
## #   REPORTADO` <dbl>, PALANCAS <dbl>, PERRO <dbl>, `SIN EMPLEO DE
## #   ARMAS` <dbl>, `SUSTANCIAS TOXICAS` <dbl>, VEHICULO <dbl>,
## #   poblacion_2017 <int>, cantidad_hurtos <int>, indice_hurtos <dbl>
ggplot(arma_spread) +
  stat_smooth(mapping = aes(x = arma_spread$`ARMA BLANCA / CORTOPUNZANTE`, y = arma_spread$indice_hurtos))
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## Warning: Removed 450 rows containing non-finite values (stat_smooth).

ggplot(arma_spread, aes(x = arma_spread$`ARMA BLANCA / CORTOPUNZANTE`, y = indice_hurtos)) +
  geom_point() + ylim(0, 7) + xlim(0, 1)
## Warning: Removed 472 rows containing missing values (geom_point).

ggplot(arma_spread, aes(x = arma_spread$`ARMA DE FUEGO`, y = indice_hurtos)) +
  geom_point() + ylim(0, 7) + xlim(0, 1)
## Warning: Removed 363 rows containing missing values (geom_point).

5.2 Educación e Hurto

Se realiza analisis bivariado de todas las variables en el dataset de educación básica contra el indice de hurtos a persona, por municipio. Se observa que ninguna de las variables del dataset de educación parecen tener una relación con el indice, por lo tanto este dataset no es útil para tratar de explicar el hurto a personas.

str(edu_joined)
## 'data.frame':    59 obs. of  38 variables:
##  $ municipio                  : chr  "MEDELLÍN" "BELLO" "CALDAS" "NARIÑO" ...
##  $ poblacion_2017             : int  2508452 473423 79652 17686 124219 1228271 649111 1024882 12342 123906 ...
##  $ cantidad_hurtos            : int  17522 1594 141 9 654 5585 1079 1954 14 160 ...
##  $ indice_hurtos              : num  6.985 3.367 1.77 0.509 5.265 ...
##  $ población_5_16             : int  370202 93422 125643 223685 24795 237521 140244 210840 267545 28640 ...
##  $ tasa_matriculación_5_16    : num  101.3 78.5 73.6 63.5 82.8 ...
##  $ cobertura_neta             : num  101.2 78.5 73.5 63.5 82.5 ...
##  $ cobertura_neta_transición  : num  73.1 53.4 48.6 33 57 ...
##  $ cobertura_neta_primaria    : num  98.6 77.2 67.7 59.3 76.6 ...
##  $ cobertura_neta_secundaria  : num  89.9 67.3 65.1 50.5 74 ...
##  $ cobertura_neta_media       : num  54.9 38.3 40.5 25.5 46.3 ...
##  $ cobertura_bruta            : num  116.3 89.8 84.3 76.2 94 ...
##  $ cobertura_bruta_transición : num  88.5 65.6 61.1 60.1 70.9 ...
##  $ cobertura_bruta_primaria   : num  114 91.3 84.8 85.4 90.2 ...
##  $ cobertura_bruta_secundaria : num  130.2 101.8 93.4 78.9 106.5 ...
##  $ cobertura_bruta_media      : num  107.6 74.4 75.9 56.1 89.3 ...
##  $ tamaño_promedio_de_grupo   : num  34 34.5 26.5 17 31.1 ...
##  $ sedes_conectadas_a_internet: num  98.3 93.7 31.2 21.6 100 ...
##  $ deserción                  : num  3.46 3.06 3.73 1.52 3.92 1.14 1.22 2.77 3.1 3.31 ...
##  $ deserción_transición       : num  3.05 2.94 3.8 1.18 2.38 1.84 1.9 4.26 2.93 6.62 ...
##  $ deserción_primaria         : num  2.71 2.71 2.85 1.03 2.41 1.05 1.24 2.33 2.11 2.82 ...
##  $ deserción_secundaria       : num  4.68 3.82 4.95 2.06 6.06 1.21 1.23 3.1 4.33 3.49 ...
##  $ deserción_media            : num  2.8 2.14 3.28 2.15 3.38 0.86 0.74 2.51 3.9 2.12 ...
##  $ aprobación                 : num  85.3 96.1 88.6 97.4 80.2 ...
##  $ aprobación_transición      : num  96.8 96.7 95.8 98.3 97 ...
##  $ aprobación_primaria        : num  88.6 96.5 91 97.9 86.1 ...
##  $ aprobación_secundaria      : num  77.8 95.3 83.8 96.7 69.3 ...
##  $ aprobación_media           : num  89.6 97 90.4 97.1 85 ...
##  $ reprobación                : num  11.23 0.84 7.64 1.06 15.87 ...
##  $ reprobación_transición     : num  0.15 0.36 0.37 0.48 0.62 1.84 0.77 0.41 0.12 0.52 ...
##  $ reprobación_primaria       : num  8.7 0.83 6.14 1.11 11.53 ...
##  $ reprobación_secundaria     : num  17.51 0.92 11.23 1.21 24.61 ...
##  $ reprobación_media          : num  7.57 0.83 6.36 0.73 11.64 ...
##  $ repitencia                 : num  10.16 1.45 2.08 2.61 11.91 ...
##  $ repitencia_transición      : num  1.37 0.25 0.28 0.9 1.76 1.36 0.47 7.78 1.91 3.05 ...
##  $ repitencia_primaria        : num  8.96 1.48 1.64 2.3 9.87 1.42 0.35 7.35 2.98 3.4 ...
##  $ repitencia_secundaria      : num  14.98 1.96 3.32 3.75 17.17 ...
##  $ repitencia_media           : num  4.83 0.41 0.98 1.46 7.9 0.35 0.2 3.82 1.63 1.86 ...

5.2.1 Tasa Matriculación personas entre 5 y 16 años

ggplot(edu_joined) +
  geom_point(aes(x = tasa_matriculación_5_16, y = indice_hurtos)) +
  stat_smooth(aes(x = tasa_matriculación_5_16, y = indice_hurtos), method = "lm", se = TRUE)

5.2.2 Tamaño Promedio de Grupo

ggplot(edu_joined) +
  geom_point(aes(x = tamaño_promedio_de_grupo, y = indice_hurtos)) +
  stat_smooth(aes(x = tamaño_promedio_de_grupo, y = indice_hurtos), method = "lm", se = TRUE)

5.2.3 Sedes Conectadas a Internet

ggplot(edu_joined) +
  geom_point(aes(x = sedes_conectadas_a_internet, y = indice_hurtos)) +
  stat_smooth(aes(x = sedes_conectadas_a_internet, y = indice_hurtos), method = "lm", se = TRUE)

5.2.4 % Cobertura

5.2.4.1 Neta

ggplot(edu_joined) +
  geom_point(aes(x = cobertura_neta, y = indice_hurtos)) +
  stat_smooth(aes(x = cobertura_neta, y = indice_hurtos), method = "lm", se = TRUE)

5.2.4.2 Transición

ggplot(edu_joined) +
  geom_point(aes(x = cobertura_neta_transición, y = indice_hurtos)) +
  stat_smooth(aes(x = cobertura_neta_transición, y = indice_hurtos), method = "lm", se = TRUE)

5.2.4.3 Primaria

ggplot(edu_joined) +
  geom_point(aes(x = cobertura_neta_primaria, y = indice_hurtos)) +
  stat_smooth(aes(x = cobertura_neta_primaria, y = indice_hurtos), method = "lm", se = TRUE)

5.2.4.4 Secundaria

ggplot(edu_joined) +
  geom_point(aes(x = cobertura_neta_secundaria, y = indice_hurtos)) +
  stat_smooth(aes(x = cobertura_neta_secundaria, y = indice_hurtos), method = "lm", se = TRUE)

5.2.4.5 Media

ggplot(edu_joined) +
  geom_point(aes(x = cobertura_neta_media, y = indice_hurtos)) +
  stat_smooth(aes(x = cobertura_neta_media, y = indice_hurtos), method = "lm", se = TRUE)

5.2.5 % Deserción

5.2.5.1 Neta

ggplot(edu_joined) +
  geom_point(aes(x = deserción, y = indice_hurtos)) +
  stat_smooth(aes(x = deserción, y = indice_hurtos), method = "lm", se = TRUE)

5.2.5.2 Transición

ggplot(edu_joined) +
  geom_point(aes(x = deserción_transición, y = indice_hurtos)) +
  stat_smooth(aes(x = deserción_transición, y = indice_hurtos), method = "lm", se = TRUE)

5.2.5.3 Primaria

ggplot(edu_joined) +
  geom_point(aes(x = deserción_primaria, y = indice_hurtos)) +
  stat_smooth(aes(x = deserción_primaria, y = indice_hurtos), method = "lm", se = TRUE)

5.2.5.4 Secundaria

ggplot(edu_joined) +
  geom_point(aes(x = deserción_secundaria, y = indice_hurtos)) +
  stat_smooth(aes(x = deserción_secundaria, y = indice_hurtos), method = "lm", se = TRUE)

5.2.5.5 Media

ggplot(edu_joined) +
  geom_point(aes(x = deserción_media, y = indice_hurtos)) +
  stat_smooth(aes(x = deserción_media, y = indice_hurtos), method = "lm", se = TRUE)

5.2.6 % Aprobación

5.2.6.1 Neta

ggplot(edu_joined) +
  geom_point(aes(x = aprobación, y = indice_hurtos)) +
  stat_smooth(aes(x = aprobación, y = indice_hurtos), method = "lm", se = TRUE)

5.2.6.2 Transición

ggplot(edu_joined) +
  geom_point(aes(x = aprobación_transición, y = indice_hurtos)) +
  stat_smooth(aes(x = aprobación_transición, y = indice_hurtos), method = "lm", se = TRUE)

5.2.6.3 Primaria

ggplot(edu_joined) +
  geom_point(aes(x = aprobación_primaria, y = indice_hurtos)) +
  stat_smooth(aes(x = aprobación_primaria, y = indice_hurtos), method = "lm", se = TRUE)

5.2.6.4 Secundaria

ggplot(edu_joined) +
  geom_point(aes(x = aprobación_secundaria, y = indice_hurtos)) +
  stat_smooth(aes(x = aprobación_secundaria, y = indice_hurtos), method = "lm", se = TRUE)

5.2.6.5 Media

ggplot(edu_joined) +
  geom_point(aes(x = aprobación_media, y = indice_hurtos)) +
  stat_smooth(aes(x = aprobación_media, y = indice_hurtos), method = "lm", se = TRUE)

5.2.7 % Reprobación

5.2.7.1 Neta

ggplot(edu_joined) +
  geom_point(aes(x = reprobación, y = indice_hurtos)) +
  stat_smooth(aes(x = reprobación, y = indice_hurtos), method = "lm", se = TRUE)

5.2.7.2 Transición

ggplot(edu_joined) +
  geom_point(aes(x = reprobación_transición, y = indice_hurtos)) +
  stat_smooth(aes(x = reprobación_transición, y = indice_hurtos), method = "lm", se = TRUE)

5.2.7.3 Primaria

ggplot(edu_joined) +
  geom_point(aes(x = reprobación_primaria, y = indice_hurtos)) +
  stat_smooth(aes(x = reprobación_primaria, y = indice_hurtos), method = "lm", se = TRUE)

5.2.7.4 Secundaria

ggplot(edu_joined) +
  geom_point(aes(x = reprobación_secundaria, y = indice_hurtos)) +
  stat_smooth(aes(x = reprobación_secundaria, y = indice_hurtos), method = "lm", se = TRUE)

5.2.7.5 Media

ggplot(edu_joined) +
  geom_point(aes(x = reprobación_media, y = indice_hurtos)) +
  stat_smooth(aes(x = reprobación_media, y = indice_hurtos), method = "lm", se = TRUE)

5.3 Armas incautadas e Indice de hurtos

El dataset de armas incautadas fue seleccionado pues, se cuenta con la hipotesis de a mayor cantidad de armas incautadas, menor será el indice de hurtos. De manera que se pasa a realizar un analisis multivariado con dicha variable. A continuaciòn los resultados:

munic_spread <- data_hurto_f_l_armas %>%
  group_by(municipio) %>%
  summarize(
    cantidad_incauta = n()
  )

munic_spread_sorted <- munic_spread[order(-munic_spread$cantidad_incauta),]

remove_capital_2 <- function(city_factor2) {
  city <- as.character(city_factor2)
  no_capital <- gsub(" \\(CT\\)", "", city)

  return(no_capital)
}

munic_spread_sorted$municipio <- as.factor(sapply(munic_spread_sorted$municipio, remove_capital_2))
munic_spread_sorted <- munic_spread_sorted %>%
  left_join(muni_joined_sorted, by = c("municipio" = "municipio"), copy = TRUE)
munic_spread_sorted <- munic_spread_sorted[order(-munic_spread_sorted$cantidad_incauta),]

munic_spread_sorted<-head(munic_spread_sorted,30)

head(munic_spread_sorted)
## # A tibble: 6 x 5
##   municipio   cantidad_incauta poblacion_2017 cantidad_hurtos indice_hurtos
##   <chr>                  <int>          <int>           <int>         <dbl>
## 1 BOGOTÁ D.C.             1829        8080734           64188          7.94
## 2 BARRANQUIL…             1066        1228271            5585          4.55
## 3 CALI                    1061        2420114           14681          6.07
## 4 MEDELLÍN                 563        2508452           17522          6.99
## 5 CÚCUTA                   403         662673            2267          3.42
## 6 CARTAGENA                375        1024882            1954          1.91
ggplot(munic_spread_sorted, aes(x=cantidad_incauta, y=indice_hurtos)) +
  geom_point()+geom_smooth() +ylim(0, 7) + xlim(0,500)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'

La gráfica anterior nos permite observar que los indices de hurtos pueden estar inversamente relacionados con los proces de incautación presentados en el municipio.